Perintah bawaan selalu lebih disukai daripada perintah eksternal. Rasionalnya adalah bahwa perintah bawaan lebih cepat (dan dalam beberapa kasus, seperti cd
atau , hanya perintah bawaan yang dapat memiliki efek yang diinginkan).test -o BASH_OPTION
Terkadang perintah eksternal mungkin memiliki kapabilitas yang tidak dimiliki shell builtin. Dalam hal ini, Anda dapat memanggil perintah eksternal dengan memberikan jalur eksplisit (yaitu berisi garis miring) (ini memintas kekhawatiran tentang urutan masuk $PATH
). Jika Anda tidak ingin melakukan hard-code pada jalur eksternal tetapi Anda ingin mencegah penggunaan builtin, Anda dapat menggunakan "$(type -P test)"
(modal catatan P
) dalam bash, "$(whence -p test)"
di ksh, dan =test
di zsh. Cara lain untuk memaksa penggunaan perintah eksternal adalah dengan menggunakan command
builtin ( command -p test …
) atau melalui env
utilitas ( env test …
).
Di zsh, Anda dapat menonaktifkan bawaan dengan disable test
. Ini permanen (untuk shell atau subkulit saat ini) sampai builtin diaktifkan kembali dengan enable test
. Dalam bash, Anda dapat melakukan hal yang sama enable -n test
untuk menonaktifkan dan enable test
mengaktifkan kembali.
Anda dapat menggunakan alias atau fungsi untuk memaksa pelaksanaan perintah yang berbeda, misalnya alias test=/usr/bin/test
atau test () { /usr/bin/test "$@"; }
. Jika Anda memiliki alias seperti itu, Anda dapat mencegah penggunaannya dengan mengutip bagian mana pun darinya, mis. \test
Akan melakukan fungsi normal / builtin / pencarian eksternal. Perhatikan bahwa tergantung pada shell dan pengaturannya, definisi alias dalam suatu fungsi dapat diperluas ketika suatu fungsi dibaca atau ketika dijalankan. Jika Anda telah mendefinisikan suatu fungsi, Anda dapat menggunakan command test
untuk mencegah pencarian fungsi serta pencarian alias (jadi di sini test
builtin akan dipanggil kecuali dinonaktifkan).
/usr/bin/test -f "$file"
...