我正在做一个可怕的项目。 它在后台使用了很多凌乱的shell脚本。 脚本可能包含一些其他脚本。 许多错误输出被redirect到/ dev / null。 当脚本没有成功执行时,我可以使用echo $? 看到错误代码,但我不能知道什么命令返回这个错误代码。
这些脚本在那里。 我不想审查所有的代码,并添加额外的代码,以温和的方式处理错误。 现在我有两个问题:
尝试
bash -x /my/script
在脚本执行时打印每一行。
不能像这样运行脚本? 您也可以将它添加到文件的第一行的shebang。
#!/usr/bin/bash -x
正如迈克尔说的,也经常用于错误检查bash脚本$ LINENO – 每次引用此参数时,shell在脚本中用一个十进制数字代替当前顺序行号(从1开始)。
所以经过一定的命令我会做:
if [ $? = 0 ]; then echo "Command "Foo" finished successfully." else echo "Error occurred on line $LINENO in command "Foo" with exit status $?" fi
像这样的东西。 希望这可以帮助。