如何临时更改 bash 跟踪/详细模式?

如何临时更改 bash 跟踪/详细模式?

我用来-x跟踪 bash 脚本的执行:

#!/bin/bash -x

x=1
y=2

执行期间发送到输出

+ x=1
+ y=2

问题:如何在脚本中间停止/暂停跟踪模式然后再次启用它?请注意 ti 与 y=2 >/dev/null 之类的内容无关。

是否可以使用详细模式 ( #!/bin/bash -v)?

答案1

set内置控制这些选项。

打开xtrace

set -x

要将其关闭:

set +x

这有点像加号和减号的逆逻辑,但事实就是如此。

同样,所有其他支持的选项set也可以在命令行上设置(*),所以bash -u与等相同set -u。链接描述中有一个列表,并且help set在命令行上也显示了它们。

有些选项也有长形式,例如set -o xtrace与 相同set -x

(* 不过,我们不能反过来说。并非所有命令行选项都可以使用 来设置set,例如-l没有等效项,显然也没有-c。)

相关内容