como alterar temporariamente o modo detalhado/rastreamento do bash?

como alterar temporariamente o modo detalhado/rastreamento do bash?

Eu uso -xpara 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

Osetconstruí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 settambém podem ser definidas na linha de comando (*) , assim bash -ucomo set -uetc. Há uma lista delas na descrição vinculada e help setna 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, -lnão tem equivalente, e nem -c, obviamente.)

informação relacionada