Perintah bawaan selalu lebih disukai daripada perintah eksternal. Rasionalnya adalah bahwa perintah bawaan lebih cepat (dan dalam beberapa kasus, seperti cdatau , 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 =testdi zsh. Cara lain untuk memaksa penggunaan perintah eksternal adalah dengan menggunakan commandbuiltin ( command -p test …) atau melalui envutilitas ( 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 testuntuk menonaktifkan dan enable testmengaktifkan kembali.
Anda dapat menggunakan alias atau fungsi untuk memaksa pelaksanaan perintah yang berbeda, misalnya alias test=/usr/bin/testatau test () { /usr/bin/test "$@"; }. Jika Anda memiliki alias seperti itu, Anda dapat mencegah penggunaannya dengan mengutip bagian mana pun darinya, mis. \testAkan 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 testuntuk mencegah pencarian fungsi serta pencarian alias (jadi di sini testbuiltin akan dipanggil kecuali dinonaktifkan).
/usr/bin/test -f "$file"...