Use set -x
no shell.
$ alias hello='echo hello world!'
$ hello
hello world!
$ set -x
$ hello
+ echo hello world!
hello world!
Usar set -x
ativa a opção xtrace
shell ( set +x
a desativa) e deve funcionar em todos os shells semelhantes a Bourne, como bash
, dash
ksh93
, pdksh
e% código%. Isso faz com que o shell exiba o comando executado após as expansões de alias e as expansões de variáveis, etc. que foram executadas.
A saída estará no fluxo de erro padrão do shell (assim como o prompt comum) para não interferir nos redirecionamentos da saída padrão, e será precedido por um prompt conforme definido pela variável zsh
shell ( PS4
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 correndo com +␣
em todos os meus shells interativos por padrão. É legal ver o que realmente foi executado ... mas notei que a conclusão de tabulação programável, etc., pode causar saída de rastreamento indesejada em alguns shells.