sh, bash, etc. têm um -x
sinalizador que mostrará cada comando que está sendo executado em um script. Isso é útil para depuração.
$ sh -x my_script.sh
+ case $SOMETHING_DIR in
+ unset SOMETHING_SCRIPT_SOURCE
+ something_process_parameters
+ local SOMETHING_AUTO_MODE
+ SOMETHING_AUTO_MODE=use
+ something_supports_source_options
++ something_echo '[ $# -gt 0 ] && something_echo $1'
++ command printf '%s\n' '[ $# -gt 0 ] && something_echo $1'
++ . /dev/stdin yes
Existe uma maneira de fazer isso com source
?
$ source my_source.sh
Sim, você pode usar
set -x
(ouset -o xtrace
) para habilitar o rastreamento no shell atual antes de fornecer o script de ponto e, em seguida, usarset +x
(ouset +o xtrace
) para desabilitar o rastreamento posteriormente.Observe que você pode não obter a saída esperada se o script de origem definir ou desdefinir a
xtrace
opção de shell.