Câu hỏi Làm thế nào để echo nhiều dòng?


Tôi có những dòng như vậy:

server {
    listen       80;
    server_name  $brand.mydomain.com;
    root         /srv/www/clients/$brand/soon;
}

Làm thế nào tôi có thể nối tất cả các dòng đó cùng một lúc vào cuối / etc / nginx / sites-available / default?

Gói văn bản này trong này:

cat >/etc/nginx/sites-available/default  <<'EOT'
  EOT

hoạt động, nhưng nó xóa tất cả nội dung trong tệp. Tôi muốn nối thêm. Cố gắng gói với điều này:

  cat >/etc/nginx/sites-available/default  >>'EOT'
  EOT

nhưng kịch bản chỉ bị treo.


3
2018-01-23 20:38


gốc


cat >> file để nối thêm vì cat> file sẽ tạo lại tệp. Trong trường hợp của bạn cat >> /etc/nginx/sites-available/default - Hastur


Các câu trả lời:


Để thêm vào tệp bạn nên sử dụng >>.
Nếu tệp tồn tại, đầu ra của lệnh sẽ được nối vào tệp.
Nếu nó không tồn tại, nó sẽ được tạo ra như thể bạn đã sử dụng một đĩa đơn >.

Trong trường hợp của bạn, giải pháp làm việc thay thế >> /etc/nginx/sites-available/default thay vì > ... nên làm việc.


2
2018-01-23 20:55





Bạn có thể dùng >> thay vì > để thêm văn bản vào một tệp:

$ cat >> /etc/nginx/sites-available/default  <<'EOT'

2
2018-01-23 20:59