Los comandos integrados siempre se prefieren a los comandos externos. La razón es que el comando incorporado es más rápido (y en algunos casos, como cdo , solo el comando incorporado puede tener el efecto deseado).test -o BASH_OPTION
A veces, el comando externo puede tener capacidades que el shell incorporado no tiene. En ese caso, puede llamar al comando externo dando una ruta explícita (es decir, que contenga una barra inclinada) (esto evita cualquier preocupación sobre el orden $PATH). Si no desea codificar la ruta externa pero desea evitar el uso de la función incorporada, puede usar "$(type -P test)"(nota mayúscula P) en bash, "$(whence -p test)"en ksh y =testen zsh. Otra forma de forzar el uso de un comando externo es usar el commandbuiltin ( command -p test …) o pasar por la envutilidad ( env test …).
En zsh, puede deshabilitar un incorporado con disable test. Esto es permanente (para el shell o subshell actual) hasta que el builtin se vuelva a habilitar enable test. En bash, puede hacer lo mismo con enable -n testdeshabilitar y enable testvolver a habilitar.
Puede usar un alias o función para forzar la ejecución de un comando diferente, por ejemplo alias test=/usr/bin/testo test () { /usr/bin/test "$@"; }. Si tiene ese alias, puede evitar su uso citando cualquier parte del mismo, por ejemplo \test, realizará la función normal / incorporado / búsqueda externa. Tenga en cuenta que dependiendo del shell y su configuración, las definiciones de alias en una función pueden expandirse cuando se lee una función o cuando se ejecuta. Si ha definido una función, puede usarla command testpara evitar la búsqueda de funciones, así como la búsqueda de alias (por lo que aquí testse invocará el valor incorporado a menos que esté deshabilitado).
/usr/bin/test -f "$file"...