Tạo một tệp có một số nội dung trong kịch bản Shell


20

Tôi là một người mới với Shell Scripting và tôi muốn tạo một tệp mới bên trong tập lệnh và muốn thêm nội dung và sau đó đóng nó. Nó không nên lấy các đối số từ người dùng. Tất cả mọi thứ từ đường dẫn và nội dung được xác định trước. Tôi làm nó như thế nào?

Câu trả lời:


24

Chỉ cần sử dụng chuyển hướng đầu ra. Ví dụ

#!/bin/bash

echo "some file content" > /path/to/outputfile

Các >sẽ viết tất cả stdinđược cung cấp bởi stdoutcác echocác tập tin outputfileở đây.

Ngoài ra, bạn cũng có thể sử dụng teevà một đường ống cho việc này. Ví dụ

echo "some file content" | tee outputfile

Xin lưu ý rằng bất kỳ ví dụ nào sẽ ghi đè lên một bản hiện có outputfile.

Nếu bạn cần nối thêm vào một tệp hiện có, sử dụng >>thay vì >hoặc tee -a.

Nếu bạn không chấp nhận đầu vào của người dùng trong dòng này, không có đầu vào của người dùng có thể thay đổi hành vi ở đây.


Đối với những người muốn có một trình ngắt dòng trong tệp của họ, hãy xem tại đây: stackoverflow.com/a/9741470/10512595
BelondFool

18

Tôi nghĩ sẽ tốt hơn khi sử dụng tài liệu ở đây để tạo một tệp mới trong tập lệnh. Đó là tìm kiếm sạch hơn, mà tôi tin rằng khuyến khích khả năng đọc.

Ví dụ:

cat > filename <<- "EOF"
file contents
more contents
EOF

Các "-"trong <<-là tùy chọn, cho phép indents tab sẽ được tước khi tập tin được tạo ra. Các trích dẫn xung quanh "EOF"ngăn "tài liệu ở đây" thực hiện bất kỳ thay thế nào.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.