Respostas:
bash -x script
ou
set -x
no script.
Você pode desativar a opção novamente com set +x
. Se você quiser apenas fazer alguns comandos, use um subshell: `(set -x; command1; command; ...;)
PS4
você pode ajustar o prompt de -x
. Por exemplo: PS4='Line $LINENO @ $(date +%s.%N): ' bash -x script
( date
vai retardá-lo, embora)
Estes também funcionam:
set -v
ou
#!/bin/bash -v
Mas -v não imprime a sequência PS4 antes de cada linha de script e não rastreia as etapas de uma instrução "for" (por exemplo) individualmente. Ele faz eco dos comentários enquanto -x não.
Aqui está um exemplo da saída usando -v:
#!/bin/bash -v
# this is a comment
for i in {1..4}
do
echo -n $i
done
1234echo
echo hello
hello
Aqui está o resultado do mesmo script com -x:
+ for i in '{1..4}'
+ echo -n 1
1+ for i in '{1..4}'
+ echo -n 2
2+ for i in '{1..4}'
+ echo -n 3
3+ for i in '{1..4}'
+ echo -n 4
4+ echo
+ echo hello
hello
Observe que eu incluí "echo -n" para adicionar ênfase às diferenças entre -v e -x. Além disso, -v é o mesmo que "-o verbose", mas o último parece não funcionar como parte de um shebang.
vai como
language -x script
idioma = python, perl, bash -x = script do operador = nome do arquivo
espero que ajude.
-x
não tem nada a com ecoando em Python
set
são as opções, você pode encontrá-las nesta página de manual .