Use set -x
no shell.
$ alias hello='echo hello world!'
$ hello
hello world!
$ set -x
$ hello
+ echo hello world!
hello world!
Usando set -x
voltas na xtrace
opção de shell ( set +x
desliga) e deve funcionar em todos Bourne-como conchas, como bash
, dash
ksh93
, pdksh
e zsh
. Isso solicita que o shell exiba o comando que é executado após a execução de expansões de alias e expansões variáveis etc.
A saída estará no fluxo de erros padrão do shell (assim como no prompt comum), para que não interfira nos redirecionamentos da saída padrão e será precedida por um prompt, conforme definido pela PS4
variável do shell ( +␣
por padrão).
Exemplo com algumas funções:
$ world () { echo "world"; }
$ hello () { echo "hello"; }
$ helloworld () { printf '%s %s!\n' "$(hello)" "$(world)"; }
$ helloworld
hello world!
$ set -x
$ helloworld
+ helloworld
++ hello
++ echo hello
++ world
++ echo world
+ printf '%s %s!\n' hello world
hello world!
Estou executando com set -x
todas as minhas conchas interativas por padrão. É bom ver o que realmente foi executado ... mas notei que a conclusão de guias programáveis etc. pode causar saída de rastreamento indesejada em alguns shells.
$@
parte do seu apelido? Lembre-se de que os aliases não suportam argumentos, que serão expandidos para os parâmetros posicionais (se houver) do contexto que chama o alias. A maneira usual de executarsomealias some args
funciona apenas expandindo o alias e deixando os argumentos para segui-lo. Se você realmente quer ser capaz de acessar os argumentos, use uma função, e citar o"$@"