Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash脚本:启用错误?_Bash_Shell_Ubuntu_Debian - Fatal编程技术网

Bash脚本:启用错误?

Bash脚本:启用错误?,bash,shell,ubuntu,debian,Bash,Shell,Ubuntu,Debian,在我的Ubuntu引擎上设计了一个简单的基于shell/bash的备份脚本并使其正常工作后,我将它上传到我的Debian服务器,该服务器在执行它时会输出一些错误 如何在我的Ubuntu机器中打开“错误处理”以使调试更容易?更改您的shebang行以包含跟踪选项: #!/bin/bash -x 您还可以让Bash在不运行文件的情况下扫描文件以查找错误: $ bash -n scriptname 更改shebang行以包含跟踪选项: #!/bin/bash -x 您还可以让Bash在不运行文件

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


如何在我的Ubuntu机器中打开“错误处理”以使调试更容易?

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

#!/bin/bash -x
您还可以让Bash在不运行文件的情况下扫描文件以查找错误:

$ bash -n scriptname

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

#!/bin/bash -x
您还可以让Bash在不运行文件的情况下扫描文件以查找错误:

$ bash -n scriptname
  • 将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。

  • 将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。

Bash允许您使用
set
命令选择性地或完全地启用调试。下面是一篇关于如何调试bash脚本的文章


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

Bash允许您使用
set
命令有选择地或完全地启用调试。下面是一篇关于如何调试bash脚本的文章


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

@Industrial:如果我知道具体的错误消息是什么,我会更有帮助。@Industrial:如果我知道具体的错误消息是什么,我会更有帮助。