Saya tidak ingin menulis file secara manual, jadi saya membuat skrip shell. Apakah ada cara untuk menulis & menyimpan file secara otomatis tanpa membuat pengguna menekan tombol?
sudo nano blah
#write stuff to file
#save file
#continue
^ Ini akan berada di dalam file * .sh
Atau adakah cara lain untuk membuat file teks sederhana dalam sebuah skrip?
$echo "Some text" > afile.txt
?Jawaban:
Untuk urutan perintah yang lebih kompleks, Anda harus mempertimbangkan menggunakan
cat
perintah dengan dokumen di sini . Format dasarnya adalahAda dua perilaku yang agak berbeda tergantung apakah label END_TEXT dikutip atau tidak dikutip:
label yang tidak dikutip : isinya ditulis setelah ekspansi shell yang biasa
label yang dikutip : isi dokumen di sini diperlakukan secara harfiah, tanpa ekspansi shell yang biasa
Misalnya perhatikan skrip berikut
Hasilnya
dan
Jika Anda mengeluarkan perintah shell dari skrip Anda, Anda mungkin menginginkan formulir yang dikutip.
sumber
END_TEXT
dan hanya menggunakanCTRL-D
untuk memberi sinyal akhir input. Lihat misalnya Bagaimana memberi sinyal pada akhir input stdinTidak perlu dipusingkan dengan editor untuk melakukan ini.
Anda dapat menambahkan sesuatu ke file dengan perintah gema sederhana. Sebagai contoh
Akan menambahkan "Halo dunia" ke file
txt
. jika file tidak ada maka akan dibuat.Atau jika file tersebut mungkin sudah ada dan Anda ingin menimpanya
Untuk baris pertama: dan
Untuk baris selanjutnya.
Paling sederhana
.sh
skrip hanya bisa berisi satu set perintah gema.sumber