Saya ingin mengulangi baris baru ke file di antara variabel dalam skrip shell. Ini kode saya:
var1 = "Halo" var2 = "Dunia!" logwrite = "$ var1 [Di sinilah saya ingin menyisipkan baris baru] $ var2 echo "$ logwrite" >> /Users/username/Desktop/user.txt
Saat ini, ketika saya menjalankan skrip saya, file user.txt menunjukkan ini:
Halo Dunia!
Saya ingin menunjukkan:
Halo Dunia!
Bagaimana saya melakukan ini ??
EDIT: Ini skrip shell saya:
echo -n "Siapa nama depan Anda?" baca dulu echo -n "Siapa nama belakangmu?" baca yang terakhir echo -n "Apa nama tengah Anda?" baca tengah echo -n "Apa hari ulang tahunmu?" baca ulang tahun echo -e "Nama Depan: $ first / nNama Terakhir: $ last / nNama Tengah: $ middle / nBirthday: $ birthday" >> /Users/matthewdavies/Desktop/user.txt qlmanage -p "~ / Desktop / user.txt"
shell
shell-script
echo
daviesgeek
sumber
sumber
printf "%s\n" $var1 $var2 >> file
?Jawaban:
Penjelasan:
The
\n
Urutan escape menunjukkan feed line. Melewati-e
argumen ke echo memungkinkan interpretasi dari urutan escape.Itu bahkan dapat disederhanakan lebih lanjut:
atau bahkan:
sumber
\n
alih-alih/n
harus melakukan trik :)-e
bendera.atau sebenarnya Anda tidak perlu vars:
ada masalah dengan john t answer: jika ada var yang memiliki string \ n (atau urutan lain seperti \ t) mereka akan diterjemahkan. orang bisa mendapatkan sesuatu yang mirip dengan jawabannya dengan printf:
juga hmm. saya melihat Anda menulis jawabannya menjadi variabel $ logwrite. jika ini adalah satu-satunya penggunaan variabel ini, tampaknya tidak ada gunanya.
Saya pikir di sini-doc bisa lebih mudah dibaca, khususnya jika Anda memiliki banyak baris untuk ditambahkan ke log:
(kata ini, EOF, adalah pembatas yang dapat Anda pilih. bisa berupa kata apa saja).
Waspadalah bahwa heredoc akan memperluas $ variabel, seperti tanda kutip ganda. jika Anda tidak menginginkan ini, Anda mengutip heredoc, seperti << "EOF"
sumber
\n
, maka mengapa saya memberikan jawabannya. Metodologi "bagaimana jika" akan membawa setiap pertanyaan di situs ini menjadi diskusi tanpa akhir. Ketika dia datang ke jalan itu, dia dapat mengajukan pertanyaan lain :)printf
. Ini POSIX: stackoverflow.com/a/34947759/895245