Após alguns testes, concluí o seguinte:
- Os aliases funcionam apenas no modo interativo (adicione
-i
ao shebang). - Os aliases não são avaliados quando vêm de uma fonte interpretada (neste caso, a variável.
- Você pode obter o bash para usar o alias com
eval $1
. Note queeval
ing qualquer coisa criada com uma variável é perigoso, mas desde que todo o ponto do script requer execução arbitrária, eu não farei um grande sucesso com isso.
Na página do bash man:
Aliases are not expanded when the shell is not interactive, unless the expand_aliases shell option is set using shopt (see the description of shopt under SHELL BUILTIN COMMANDS below).
Você pode adicionar shopt -s expand_aliases
em vez de -i
.
Além disso,
Aliases are expanded when a command is read, not when it is executed.
Como as variáveis não são expandidas antes de o comando ser lido, elas não serão mais expandidas usando o alias.