как временно изменить режим трассировки/подробного вывода bash?

как временно изменить режим трассировки/подробного вывода bash?

Я использую -xдля отслеживания выполнения bash-скрипта:

#!/bin/bash -x

x=1
y=2

во время выполнения отправляет на выход

+ x=1
+ y=2

вопрос: как в середине скрипта я могу остановить/приостановить режим трассировки, а затем снова включить его? Пожалуйста, обратите внимание, что это НЕ о чем-то вроде y=2 >/dev/null.

Возможно ли это в подробном режиме ( #!/bin/bash -v)?

решение1

Thesetвстроенныйконтролирует эти параметры.

Включать xtrace:

set -x

Чтобы отключить:

set +x

Это немного обратная логика с плюсом и минусом, но это так.

Аналогично, все остальные параметры, поддерживаемые , setтакже могут быть установлены в командной строке (*) , то bash -uже самое делает set -uи т. д. Список таких параметров есть в связанном описании, а help setв командной строке они также отображаются.

Некоторые из опций также имеют длинные формы, например, set -o xtraceто же самое, что и set -x.

(* Однако мы не можем утверждать обратное. Не все параметры командной строки можно задать с помощью set, например, -lне имеет эквивалента, и -c, очевидно, не имеет.)

Связанный контент