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, observe que NÃO se trata de algo como y=2 >/dev/null.
É possível no modo detalhado ( #!/bin/bash -v
)?
Responder1
Oset
construídas emcontrola essas opções.
Para ligar xtrace
:
set -x
Para desligá-lo:
set +x
Isso é um pouco de lógica inversa com mais e menos, mas aí está.
Da mesma forma, todas as outras opções suportadas por set
também podem ser definidas na linha de comando (*) , assim bash -u
como set -u
etc. Há uma lista delas na descrição vinculada e help set
na linha de comando também as mostra.
Algumas das opções também possuem formatos longos, por exemplo, set -o xtrace
é igual a set -x
.
(* 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.)