Existe uma maneira de rastrear a execução de um script bash shell (.sh)?
Você pode usar set -x
, set +x
e set -v
conforme descrito abaixo.
-
set -x
: Exibe comandos e seus argumentos conforme são executados. -
set +x
: desativar a depuração -
set -v
: exibe as linhas de entrada do shell à medida que são lidas.
HowTo: Depurar um script de shell no Linux ou UNIX
1. Use
-x
option to debug a shell scriptRun a shell script with -x option.
$ bash -x script-name $ bash -x domains.sh
2. Use of
set
builtin commandBash shell offers debugging options which can be turn on or off using set command.
- set -x : Display commands and their arguments as they are executed.
- set -v : Display shell input lines as they are read.
You can use above two commands in shell script itself:
#!/bin/bash clear # turn on debug mode set -x for f in * do file $f done # turn OFF debug mode set +x ls # more commands
You can replace the standard Shebang line:
#!/bin/bash
with the following (for debugging) code:
#!/bin/bash -xv
Source HowTo: Depurar um script de shell no Linux ou UNIX
Leitura Adicional
- Um índice A-Z da linha de comando do Bash para Linux - Uma excelente referência para todas as coisas relacionadas à linha de comando do Bash.
- definir - Manipular variáveis e funções do shell.