Dahili komutlar her zaman harici komutlara tercih edilir. Bunun mantığı, yerleşik komutun daha hızlı olmasıdır (ve bazı durumlarda cd
ya 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 =test
zsh içinde. Harici bir komutun kullanılmasını zorlamanın başka bir yolu da command
builtin ( command -p test …
) yöntemini kullanmak veya env
yardı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 test
devre dışı bırakmak ve enable test
yeniden etkinleştirmek için aynı işlemi yapabilirsiniz .
Örneğin, alias test=/usr/bin/test
veya 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 \test
normal 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 test
işlev aramasının yanı sıra takma ad aramasını da önlemek için kullanabilirsiniz (bu nedenle burada test
yerleşik devre dışı bırakılmadığı sürece çağrılacaktır).
/usr/bin/test -f "$file"
...