Bash脚本:打开错误?

时间:2011-01-21 19:58:58

标签: bash shell ubuntu debian

在我的Ubuntu引擎上设计一个简单的基于shell / bash的备份脚本并使其工作后,我将它上传到我的Debian服务器,它在执行时输出了许多错误。

如何在我的Ubuntu机器中打开“错误处理”以便于调试?

3 个答案:

答案 0 :(得分:2)

  • ssh进入服务器
  • 使用-v-x或两者
  • 手动运行脚本
  • 尝试在终端窗口中复制运行错误的用户,组和环境
    如有必要,使用类似“su -c”sh -v script'otheruser
  • 的程序运行程序

您可能还希望将错误命令的结果(尤其是在cron(8)运行时)传递到/bin/logger,可能是这样的:

sh -v -x badscript 2>&1 | /bin/logger -t badscript

然后查看/ var / log / messages。

答案 1 :(得分:2)

Bash允许您有选择地或完全使用set命令打开调试。这是关于如何调试bash脚本的good reference

命令set -x将打开脚本中的任何位置的调试。同样,set +x会再次将其关闭。如果您只想查看脚本部分的调试输出,这非常有用。

答案 2 :(得分:1)

更改shebang行以包含跟踪选项:

#!/bin/bash -x

您也可以让Bash扫描文件以查找错误而不运行它:

$ bash -n scriptname