Eu uso -x
para rastrear a execução do script bash:
#!/bin/bash -x
x=1
y=2
durante a execução envia para saída
+ x=1
+ y=2
a pergunta: como no meio do script posso parar/pausar o modo de rastreamento e ativá-lo novamente? Por favor, note que ti NÃO é sobre algo como y=2 >/dev/null.
É possível no modo detalhado ( #!/bin/bash -v
)?
O
set
builtin controla essas opções.Para ativar
xtrace
:Para desativá-lo:
Isso é um pouco de uma lógica inversa com o mais e o menos, mas aí está.
Da mesma forma, todas as outras opções suportadas por
set
também podem ser definidas na linha de comando (*) , assimbash -u
comoset -u
etc. Há uma lista delas na descrição vinculada ehelp set
na linha de comando também as mostra.Algumas das opções também têm formulários longos, por exemplo,
set -o xtrace
é o mesmo queset -x
.(* No entanto, não podemos dizer o contrário. Nem todas as opções de linha de comando podem ser definidas com
set
, por exemplo-l
, não tem equivalente, e nem-c
, obviamente.)