
Я использую -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
, очевидно, не имеет.)