Saya mencoba 'man echo' di Bash dan ia memberi tahu saya bahwa 'echo --help' akan menampilkan bantuan lalu keluar, dan demikian pula, 'echo --versi' akan menampilkan versi dan keluar. Tetapi mengapa itu tidak berhasil? 'echo --help' cukup mencetak '--help' secara harfiah.
20
echo --help
adalah bug . Bayangkan apa yang terjadi jika Anda melakukannya:printf "The option you entered is: " ; echo "$opt"
dan variabel shellopt
berisi teks--help
. Sesuai standar POSIX,echo
tidak diizinkan berperilaku seperti ini, tetapi gema GNU sangat tidak sesuai.echo -e
danecho -n
juga bug, oleh logika Anda?Jawaban:
man echo
berkaitan denganecho
program . GNUecho
mendukung suatu--help
pilihan, seperti yang dilakukan beberapa orang lain. Ketika Anda menjalankanecho
di Bash Anda malah mendapatkan builtinecho
yang tidak.Untuk mengakses
echo
program, alih-alih builtin, Anda bisa memberikan path ke sana:atau gunakan
enable
perintah Bash untuk menonaktifkan versi bawaan:Bash memiliki versi bawaan dari banyak perintah dasar, karena ini sedikit lebih cepat untuk melakukan itu, tetapi Anda selalu dapat mem-bypassnya seperti ini saat dibutuhkan.
sumber
zsh
.enable
tidak bekerja.echo
khususnya memiliki banyak ekstensi di atas POSIX, dan Bashecho
hanya beberapa. Sebenarnya tidak ada nama umum yang dapat saya pikirkan untuk perintah yang dapat dibayangi oleh builtin. Ada tidak begitu banyak bahwa Anda akan perlu satu:echo
,test
,[
, danpwd
adalah orang-orang yang mungkin Anda bertemu.command
secara eksplisit selalu memanggil builtin. Saya tidak tahu apa yang saya pikirkan, selain ituzsh
bekerja sebaliknya.Selain jawaban lain, Anda bisa menggunakan
lihat juga bantuan singkat untuk
echo
perintah bawaan.sumber
Anda menggunakan
echo
perintah bash bawaan, yang tidak mengerti--help
opsi. Menggunakan:Untuk melihat bantuan untuk built-in
echo
, gunakanman bash
dan cariecho
.sumber