La barra invertida suprimirá la expansión de alias, es decir, ejecuta el comando original y se asegura de que la versión de alias no se ejecute. Los scripts pueden ejecutarse sin saberlo con expansión de alias cuando el sistema se ha configurado shopt -s expand_aliases
(solo BASH) o si se ejecuta utilizando source
.
./conda.sh # usually no alias expansion (unless `shopt -s expand_aliases` in BASH)
source ./conda.sh # alias expansion
. ./conda.sh # alias expansion
A algunos administradores de sistemas les gusta poner una barra invertida en todo como medida preventiva contra los efectos secundarios de los alias, solo en caso de que se haya alias involuntariamente en otro lugar y el alias se expanda como se explicó anteriormente. Por ejemplo, si el sistema ha configurado esto en alias dirname='dirname -z'
algún lugar y la condición permite que el alias se expanda, entonces un script que intenta llamar a dirname desafortunadamente llamará dirname -z
, que no era el script previsto.
Si hay certeza de que dicho alias no existe, podemos eliminar toda la barra invertida y debería funcionar bien.
Alternativamente, se puede usar en command
lugar de la versión de barra diagonal inversa para suprimir el alias. Por lo tanto, en lugar de \dirname
, uno puede usar command dirname
, lo que podría parecer más legible. (Para comandos integrados como cd
, uno debería usar builtin
en su lugar). Prefiero esto en su lugar, ya que también omite la función con el mismo nombre, así como cualquier alias.