![“set -x”在 bash 脚本中起什么作用?](https://linux22.com/image/1167667/%E2%80%9Cset%20-x%E2%80%9D%E5%9C%A8%20bash%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E8%B5%B7%E4%BB%80%E4%B9%88%E4%BD%9C%E7%94%A8%EF%BC%9F.png)
我正在阅读一个 bash 脚本,它以 开头set -x
。我在 google 上搜索了一下,没有找到任何一本手册详细描述了所有标志-x
。
如果我听起来像是一个在问问题之前没有做过调查的人,我深表歉意,但我确实没有找到任何相关信息set -x
。有什么想法吗?
答案1
正如help set
所说:
-x Print commands and their arguments as they are executed.
它可以在交互式和非交互式 shell 中运行,因此您可以尝试set -x
在交互式 shell 中运行以查看效果。运行的每个命令都会首先回显给您(+
前面带有符号,以帮助您将其与大多数常规输出区分开来)。
ek@Cord:~$ echo hello world
+ echo hello world
hello world
(如果您看到的输出比您在交互式 shell 中预期的多得多,那么您的 shell 可能正在运行命令来构建您的提示符。例如,如果您的提示符设置为显示有关您导航到的 git 存储库的信息,您将看到大约 20 行额外的内容,即使您现在实际上不在存储库中。)
要关闭它,请运行set +x
。有点令人困惑的是,使用set
可以-
启用 shell 选项,也+
可以禁用它。
有关详细信息,请参阅For more information, see4.3.1 内置 Set在里面Bash 参考手册。