Um shell alias
se comporta de maneira muito semelhante a um #define
, ou seja, a redefinição de um alias de shell substituirá o anterior.
Não sei qual seria o caminho certo TM , mas uma abordagem seria usar uma função de shell que aceita parâmetros e usa isso para criar um alias. Seu snippet de código pode ser reescrito como:
if [ -f /usr/bin/pacmatic ]; then
pacman() { pacmatic "$@"; }
fi
# Colorized Pacman output
alias pacman="pacman --color auto"
Além disso, mesmo se você estivesse usando diferentes aliases e estivesse tentando usar um para definir o outro, ele não funcionaria, pois os aliases não são expandidos no modo não interativo por padrão. Você precisa ativá-lo definindo expand_aliases
:
shopt -s expand_aliases
Citando o manual:
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).