Os aliases são expandidos apenas se o comando aparecer diretamente no código, sem qualquer expansão. Escrever coisas como \a
, $V
, $(echo a)
, etc. suprime a pesquisa de alias.
Além disso, o bash (ao contrário de outros shells) não expande os aliases nos scripts por padrão, então a
na verdade não não executa o alias no bash.
Use uma função em vez de um alias. Você precisará usar o nome original para definir a função.
V=a
a () { echo test; }
"$V" # prints test
(Existem outras maneiras de fazer algo parecido com o que você quer usando eval
, mas não use eval
a menos que você saiba exatamente o que está fazendo. Citando coisas corretamente com eval
é complicado.)