Echo linhas de script antes de executá-las

4

Existe uma maneira de executar scripts em bash que faz com que ele imprima cada linha do script antes de executá-lo? Isso seria muito útil para depurar ...

$./myscript.sh
echo "Hello"
Hello

Eu seria capaz de ver exatamente até onde meu script chegou e o que está fazendo.

    
por Questionmark 27.10.2014 / 20:31

1 resposta

6

Você pode ativar / desativar esse recurso usando o comando set e a opção -x/+x .

-x - After expanding each simple command, for command, case command, select command, or arithmetic for command, display the expanded value of PS4, followed by the command and its expanded arguments or associated word list.

-x ativa, +x desativa.

Exemplo

script de amostra
$ cat ~/myscript.sh 
#!/bin/bash

set -x
echo "Hello"
exemplo de saída
$ ~/myscript.sh 
+ echo Hello
Hello
    
por 27.10.2014 / 20:43