Bash 脚本:记录产生错误的命令?
Bash scripting: log commands that produced errors?
我正在研究 bash 脚本的最佳实践。在每个文件的顶部,我放置了以下内容,以便在任何命令产生错误时退出:
set -o errexit
问题是它对调试没有帮助。我正在寻找一种方法来记录失败的命令(即 运行 的命令和参数),以及错误发生在哪一行以及哪个文件中。
这样做的好方法是什么?例如,通过每个 bash 脚本顶部的一小组命令?也许有一个用于所有脚本的中央文件来记录此类错误?这些命令可能是什么?
此外,将它放在每个需要它的脚本中是个好主意吗?或者应该将带有它的单个文件 source
' 放入每个需要它的脚本中?或者也许有不同的方法?
你有几个选择:
- 在 script.sh 文件的顶部使用:
#!/bin/bash -x
- 在script.sh
中使用set -x
选项
- 从命令行使用 -x:
bash -x script.sh
我正在研究 bash 脚本的最佳实践。在每个文件的顶部,我放置了以下内容,以便在任何命令产生错误时退出:
set -o errexit
问题是它对调试没有帮助。我正在寻找一种方法来记录失败的命令(即 运行 的命令和参数),以及错误发生在哪一行以及哪个文件中。
这样做的好方法是什么?例如,通过每个 bash 脚本顶部的一小组命令?也许有一个用于所有脚本的中央文件来记录此类错误?这些命令可能是什么?
此外,将它放在每个需要它的脚本中是个好主意吗?或者应该将带有它的单个文件 source
' 放入每个需要它的脚本中?或者也许有不同的方法?
你有几个选择:
- 在 script.sh 文件的顶部使用:
#!/bin/bash -x
- 在script.sh 中使用
- 从命令行使用 -x:
bash -x script.sh
set -x
选项