Dahili komutlar her zaman harici komutlara tercih edilir. Bunun mantığı, yerleşik komutun daha hızlı olmasıdır (ve bazı durumlarda cdya da yalnızca yerleşik komut istenen etkiye sahip olabilir).test -o BASH_OPTION
Bazen harici komut, kabuk yerleşiminin sahip olmadığı yeteneklere sahip olabilir. Bu durumda, açık bir yol vererek (yani, eğik çizgi içeren) harici komutu çağırabilirsiniz (bu, siparişle ilgili endişeleri atlar $PATH). Eğer sabit koduna dış yolunu istemiyoruz ancak bunu yerleşiğine kullanılmasını önlemek istiyorsanız, kullanabileceğiniz "$(type -P test)"(not sermaye P, bash) "$(whence -p test)"ksh ve =testzsh içinde. Harici bir komutun kullanılmasını zorlamanın başka bir yolu da commandbuiltin ( command -p test …) yöntemini kullanmak veya envyardımcı programdan ( env test …) geçmektir .
Zsh'de bir yerleşkeyi ile devre dışı bırakabilirsiniz disable test. Bu, yerleşik yeniden etkinleştirilene kadar kalıcıdır (mevcut kabuk veya alt kabuk için) enable test. Bash'da, enable -n testdevre dışı bırakmak ve enable testyeniden etkinleştirmek için aynı işlemi yapabilirsiniz .
Örneğin, alias test=/usr/bin/testveya gibi farklı bir komutun yürütülmesini zorlamak için bir takma ad veya işlev kullanabilirsiniz test () { /usr/bin/test "$@"; }. Böyle bir takma adınız varsa, herhangi bir bölümünü alıntılayarak kullanımını engelleyebilirsiniz, örneğin \testnormal işlevi / yerleşik / harici aramayı gerçekleştirir. Kabuğa ve ayarlarına bağlı olarak, bir işlevdeki diğer ad tanımlarının bir işlev okunduğunda veya yürütüldüğünde genişletilebileceğini unutmayın. Bir işlev tanımladıysanız, command testişlev aramasının yanı sıra takma ad aramasını da önlemek için kullanabilirsiniz (bu nedenle burada testyerleşik devre dışı bırakılmadığı sürece çağrılacaktır).
/usr/bin/test -f "$file"...