【发布时间】:2023-12-01 18:24:01
【问题描述】:
在我的 Ubuntu 引擎上设计了一个简单的基于 shell/bash 的备份脚本并使其工作后,我已将它上传到我的 Debian 服务器,它在执行它时会输出一些错误。
如何在我的 Ubuntu 机器中打开“错误处理”以使其更易于调试?
【问题讨论】:
在我的 Ubuntu 引擎上设计了一个简单的基于 shell/bash 的备份脚本并使其工作后,我已将它上传到我的 Debian 服务器,它在执行它时会输出一些错误。
如何在我的 Ubuntu 机器中打开“错误处理”以使其更易于调试?
【问题讨论】:
-v 或 -x 或两者手动运行脚本您可能还希望将错误命令的结果(特别是如果由cron(8) 运行)传送到/bin/logger,可能类似于:
sh -v -x badscript 2>&1 | /bin/logger -t badscript
然后去看看 /var/log/messages。
【讨论】:
Bash 允许您有选择地或完全使用set 命令打开调试。这是关于如何调试 bash 脚本的good reference。
命令set -x 将打开脚本中任何位置的调试。同样,set +x 将再次将其关闭。如果您只想查看部分脚本的调试输出,这很有用。
【讨论】:
更改您的 shebang 行以包含跟踪选项:
#!/bin/bash -x
您也可以让 Bash 在不运行文件的情况下扫描文件以查找错误:
$ bash -n scriptname
【讨论】: