Eu descubro a solução do meu jeito.
Primeiramente, eu crio uma função chamada "addExpand" para adicionar o alias / fucntion mais fácil se eu quiser.
xb@dnxb:/tmp/t$ type -a addExpand
addExpand is a function
addExpand ()
{
echo -e "#!/bin/bash\nshopt -s expand_aliases\n. ~/.bash_aliases 2>/dev/null\n$1"' "$@"' | sudo tee /usr/bin/e_"$1";
sudo chmod +x /usr/bin/e_"$1"
}
xb@dnxb:/tmp/t$ addExpand l
#!/bin/bash
shopt -s expand_aliases
. ~/.bash_aliases 2>/dev/null
l "$@"
Depois de executar addExpand l
, o alias l
será criado como um arquivo executável denominado / usr / bin / e_l com o seguinte conteúdo:
xb@dnxb:/tmp/t$ cat /usr/bin/e_l
#!/bin/bash
shopt -s expand_aliases
. ~/.bash_aliases 2>/dev/null
l "$@"
Agora aproveite para usar a versão de expansão do alias / function:
xb@dnxb:/tmp/t$ watch --color -n 1 e_l /tmp //works like a charm !!!
xb@dnxb:/tmp/t$
Nota:
[1] e_l
, prefixo com 'e_' para indicar a versão de expansão do comando.
[2] Eu me sinto muito pesado para realizar o sourcing a cada segundo se for executado com watch -n 1
. Talvez eu precise encontrar uma maneira de resolver esse problema.
[3] Outra desvantagem é que não resolve alias recursivamente.