Saya perlu membuat file /opt/nginx/conf.d/default.conf
dengan konten ini melalui skrip shell dan membuat file jika tidak ada:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
}
Bagaimana cara menulis konten multiline melalui skrip shell?
Saya membuat direktori
sudo mkdir -p /opt/nginx/conf.d
Tapi saya tidak tahu cara menulis file.
text-processing
files
nginx
pengguna3142695
sumber
sumber
Jawaban:
ringkasan: gunakan
>>
untuk menambahkan, gunakan[ -f file ]
untuk menguji.mencoba
cat <<EOF
disebut " dokumen di sini ".$server
akan diganti oleh nilainya, atau kosong jika tidak ditentukan.'EOF'
untuk menghindari penggantian var jika ada.Anda juga dapat memiliki beberapa gema (ini bisa menyakitkan untuk dipertahankan jika terlalu banyak gema)
mengawali
tidak ada prepend langsung dalam bash, baik menggunakan file sementara
atau edit itu
sumber
$
(jika ada) tidak diperlakukan sebagai variabel dan karenanya tidak diperluascat
dua file bersama-sama dan ganti nama hasilnya.echo
s terpisah , masih lebih efisien untuk hanya memiliki satu pengalihan, dengan meletakkannya di blok:{ echo "foo"; echo "bar"; echo "baz"; } >file
- dengan begitu kita tidak membuka kembalifile
setiap kali kita hanya ingin menulis satu baris untuk itu, dan menutupnya ketika garis itu selesai.cat << EOF | sudo tee /opt/nginx/conf.d/default.conf ...
Jika file /opt/nginx/conf.d/default.conf tidak ada, maka cetak (f) string statis ke dalam file:
sumber
printf '%s\n' "first line" "second line"
mungkin sedikit lebih mudah dibaca; dengan cara itu orang tidak perlu membaca seluruh string untuk mencari tahu di mana pelarian itu ..