我有一个 shell 脚本,其中包含以下行:
[ "$DEBUG" == 'true' ] && set -x
原文由 Ole 发布,翻译遵循 CC BY-SA 4.0 许可协议
set -x
打印简单命令的跟踪,对于命令、case 命令、选择命令,以及命令及其参数或相关单词列表的算术运算在它们展开之后和执行之前。 PS4 变量的值被扩展,结果值在命令及其扩展参数之前打印。
[ 来源]
set -x
echo `expr 10 + 20 `
+ expr 10 + 20
+ echo 30
30
set +x
echo `expr 10 + 20 `
30
上面的例子说明了 set -x
的用法。使用时,上述算术表达式已被扩展。我们可以看到如何逐步评估单行。
expr
已经评估。echo
已经评估。要了解有关设置的更多信息 → 访问 此链接
当涉及到你的 shell 脚本时,
[ "$DEBUG" == 'true' ] && set -x
当执行模式选择为 DEBUG
时,您的脚本可能已经打印了一些额外的信息行。传统上,人们习惯于在使用可选参数调用脚本时启用调试模式,例如 -d
原文由 Raju 发布,翻译遵循 CC BY-SA 4.0 许可协议
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答799 阅读✓ 已解决
2 回答3.2k 阅读
set -x
启用 shell 模式,所有执行的命令都打印到终端。在您的情况下,它显然用于调试,这是set -x
的典型用例:在执行时打印每个命令可以帮助您可视化脚本的控制流,如果它没有按预期运行。set +x
禁用它。