我正在编写一个循环遍历一些值并为每个值运行一个长命令行的 shell 脚本。我想一路打印出这些命令,就像make
运行 makefile 时一样。我知道我可以在运行它们之前“回显”所有命令,但感觉不优雅。所以我正在寻找set -x
类似的机制:
#!/bin/sh
for value in a long list of values
do
set -v
touch $value # imagine a complicated invocation here
set +v
done
我的问题是:在每次迭代中,不仅打印出有趣的行,而且还打印出行set +x
。有没有可能防止这种情况发生?如果没有,您推荐什么解决方法?
PS:上面的MWE使用sh
,但我也有bash
并zsh
安装以防万一。