Có nhiều cách để đọc và ghi một tệp trong bash. Cách đơn giản nhất là sử dụng toán tử> và >>.
- > toán tử sẽ ghi đè lên dữ liệu hiện có
- >> nhà điều hành sẽ nối thêm dữ liệu
Định dạng chung của việc sử dụng các toán tử chuyển hướng là:
Dữ liệu> Tên tệp
Dữ liệu >> Tên tệp
Hãy hiểu cách ghi vào một thủ tục tệp với một ví dụ:
Cách ghi tệp bằng toán tử chuyển hướng
Như đã thảo luận ở trên, cách tiếp cận đơn giản và dễ hiểu để ghi vào tệp là sử dụng toán tử chuyển hướng. Ví dụ: nếu bạn muốn thay đổi văn bản của một tệp đã tồn tại, thì trước tiên hãy tạo một tệp văn bản có tên là testfile.txt và viết bất cứ thứ gì trong đó:
Lưu tệp văn bản.
Nhập lệnh được đề cập bên dưới vào thiết bị đầu cuối:
$ echo Ghi đè văn bản hiện có trong tệp> testfile.txt
Vắt quá nhiều có thể có rủi ro; do đó, bạn nên bật noclobber. Đặt noclobber sẽ chặn mọi ghi đè lên bất kỳ tệp nào đang thoát.
$ set –o noclobber$ echo Ghi đè văn bản hiện có trong tệp> testfile.txt
Nhưng nếu bạn muốn bỏ qua noclobber thì hãy sử dụng > | nhà điều hành thay vì > :
$ echo Ghi đè văn bản hiện có trong tệp> | testfile.txtHoặc bạn có thể vô hiệu hóa noclobber một cách đơn giản:
$ set + hoặc noclobber
Nhưng lệnh này sẽ lấy đi sự bảo vệ khỏi tất cả các tệp.
Kết quả trên cho biết rằng văn bản hiện có đã bị ghi đè. Bây giờ, hãy sử dụng >> nhà điều hành:
$ echo Nối văn bản vào tệp văn bản hiện có >> testfile.txt
quăng đi không phải lúc nào cũng lý tưởng để sử dụng vì bạn không thể định dạng văn bản bằng cách sử dụng nó, do đó hãy sử dụng printf thay cho echo để định dạng văn bản như được minh họa trong lệnh sau:
$ printf Chào mừng n Đây là một tệp văn bản mới. > newtestfile.txt
Hãy hiểu khái niệm này với một ví dụ về tập lệnh bash. Mở Vim bằng cách nhập vim vào thiết bị đầu cuối. Nếu bạn không có trình chỉnh sửa Vim trên thiết bị của mình, hãy cài đặt nó bằng cách sử dụng:
$ sudo apt cài đặt vimNhập tập lệnh:
#! / bin / bashecho Nhập tên của bạn
đọc tên
echo $ name> data_dir.txt
echo Nhập tuổi của bạn
tuổi đọc
echo $ age >> data_dir.txt
cat data_dir.txt
Các con mèo được sử dụng để tạo và chỉnh sửa tệp. Lưu tập lệnh trên trong Vim bằng cách chuyển đổi chế độ sau khi nhấn Thoát ra phím và sau đó gõ : trong myscript.sh . Mở thiết bị đầu cuối và chạy mã:
Cách ghi tệp bằng Heredoc
Nếu bạn muốn viết nhiều dòng, thì phương pháp đơn giản nhất là sử dụng Heredoc. Ở đây tài liệu, còn được gọi là Heredoc, là một khối mã đa năng. Cú pháp của Heredoc là:
Chỉ huy<<[-] Delimiter.
văn bản / lệnh
.
Dấu phân cách
Bất kỳ chuỗi nào cũng có thể được sử dụng thay cho Dấu tách và - cũng có thể được sử dụng để xóa bất kỳ khoảng trắng tab nào trong tệp. Hãy hiểu nó bằng một ví dụ đơn giản:
#! / bin / bashcon mèo<< TEXTFILE
Đây là một tệp văn bản.
Tệp này được tạo bằng heredoc.
DỆT
Lệnh script cat ở trên tạo một tệp văn bản có tên là TEXTFILE và ghi văn bản vào tệp vừa tạo. Bây giờ hãy lưu tệp theo tên của myscript.sh . Khởi chạy thiết bị đầu cuối và chạy tập lệnh.
Cách ghi tệp bằng lệnh Tee
Một phương pháp khác để ghi tệp là sử dụng lệnh Tee. Như tên cho biết lệnh này nhận đầu vào và ghi vào một tệp và hiển thị đầu ra đồng thời. Theo mặc định, lệnh Tee sẽ ghi đè lên dữ liệu hiện có.
$ echo Đây là một số văn bản | tee textfile.txt
Để nối thêm sử dụng –a:
$ echo Đây là một văn bản khác | tee –a textfile.txt
Để viết nhiều dòng, hãy sử dụng:
$ echo Thêm văn bản vào nhiều tệp | tee textfile1.txt textfile2.txt textfile3.txt
Lệnh trên sẽ tạo ba tệp nếu chúng không tồn tại và ghi văn bản vào mỗi tệp.
Phần kết luận
Hướng dẫn này tập trung vào nhiều cách tiếp cận để ghi vào tệp trong bash với các ví dụ. Trong kịch bản bash, có nhiều cách để ghi một tệp, nhưng cách đơn giản nhất là sử dụng các toán tử chuyển hướng>, >>. Để viết nhiều dòng, có thể sử dụng heredoc, và nếu bạn muốn ghi cùng một dữ liệu vào nhiều dòng, thì lệnh tee khá tiện dụng.