我有一个脚本直到它完全完成之前,这不起作用(它会冻结我的状态行)。但是,通过添加一个随机的错误命令,例如
asdfasdf
脚本到达文件中的任何位置(即不在exit 0
注释之后或之中),脚本都能完美运行(不会冻结)。
什么原因可能导致这种行为?我该如何解决它?
答案1
此类问题可以通过启用跟踪输出来解决。这可以通过在命令行前加上前缀来实现bash -x
。在脚本中,您可以将其添加-x
到 bang 路径中。
一旦您知道问题出在哪里或可能出在哪里,您就可以使用set
脚本中的命令来打开或关闭跟踪。 set -x
打开跟踪然后set +x
关闭它。