A barra invertida suprimirá a expansão do alias, ou seja, ele executa o comando original e garante que a versão do alias não seja executada. Os scripts podem ser executados sem saber com expansão de alias quando o sistema tiver definido shopt -s expand_aliases
(apenas BASH) ou se for executado usando source
.
./conda.sh # usually no alias expansion (unless `shopt -s expand_aliases` in BASH)
source ./conda.sh # alias expansion
. ./conda.sh # alias expansion
Alguns administradores de sistema gostam de colocar barra invertida em tudo como uma medida preventiva contra os efeitos colaterais de aliases, apenas no caso de ter sido aliasado acidentalmente em outro lugar e o alias ser expandido conforme explicado anteriormente. Por exemplo, se o sistema definiu isso em alias dirname='dirname -z'
algum lugar e a condição permite que o alias seja expandido, um script que tenta chamar dirname infelizmente chamará dirname -z
, mas esse não foi o script pretendido.
Se houver certeza de que esse alias não existe, podemos remover toda a barra invertida e deve funcionar bem.
Como alternativa, pode-se usar em command
vez da versão de barra invertida para suprimir o alias. Assim, em vez de \dirname
, pode-se usar command dirname
, o que pode parecer mais legível. (Para comandos internos como cd
, deve-se usar builtin
). Em vez disso, prefiro isso, pois também ignora a função com o mesmo nome e com qualquer apelido.