除非给出错误的命令,否则 bash 脚本不会运行

除非给出错误的命令,否则 bash 脚本不会运行

我有一个脚本直到它完全完成之前,这不起作用(它会冻结我的状态行)。但是,通过添加一个随机的错误命令,例如

asdfasdf

脚本到达文件中的任何位置(即不在exit 0注释之后或之中),脚本都能完美运行(不会冻结)。

什么原因可能导致这种行为?我该如何解决它?

答案1

此类问题可以通过启用跟踪输出来解决。这可以通过在命令行前加上前缀来实现bash -x。在脚本中,您可以将其添加-x到 bang 路径中​​。

一旦您知道问题出在哪里或可能出在哪里,您就可以使用set脚本中的命令来打开或关闭跟踪。 set -x打开跟踪然后set +x关闭它。

相关内容