Saat berlari
echo abcd | wc -c
ia kembali 5
.
Tapi kata abcd
itu hanya 4 karakter.
Apakah echo
mencetak karakter khusus setelah kata abcd
?
Dan bisakah saya mencegah echo
mencetak itu?
text-processing
echo
wc
pengguna78050
sumber
sumber
printf
lebih baik dari ituecho
?wc -c
tidak memberi tahu Anda berapa banyak karakter sesuatu; itu hanya memberitahu berapa banyak byte itu.Jawaban:
echo
cetak baris baru (\n
) di akhir barisDengan beberapa
echo
implementasi, Anda dapat menggunakan-n
:dan uji:
Dengan beberapa yang lain, Anda perlu
\c
urutan pelarian:Portable, gunakan
printf
:(perhatikan bahwa
wc -c
jumlah byte, bukan karakter (meskipun dalam kasusabcd
mereka umumnya setara). Gunakanwc -m
untuk menghitung karakter).sumber
echo
implementasi (semua yang memenuhi Unix setidaknya), itu adalahecho 'abcd\c'
outputabcd
saja.echo -e 'abcd\c'
dalamecho
implementasi Unix-compliant akan menghasilkan-e abcd
.Jika Anda menjalankan
echo
tanpa-n
opsi, itu menulis karakter baris baru setelah argumen. Jika tidak, jika Anda mengetikecho foo
, prompt shell Anda berikutnya akan muncul di sebelah kananfoo
. Begituwc
juga menghitung baris baru.sumber
Secara default,
echo
akan mencetak karakter baris baru (\n
) setelah string (itulah sebabnya Anda melihat prompt shell pada baris berikutnya alih-alih baris yang sama di manaabcd
dicetak.)Anda dapat mencoba menambahkan
-n
parameterecho
untuk menonaktifkan karakter baris baru yang tertinggal.sumber