相关疑难解决方法(0)

在 bash 脚本中找到丢失的引号的最简单方法?

我有一个 bash 脚本,目前有 700 多行。经过特别长时间的编辑,它现在出现如下错误:

./run_me.sh: line 693: unexpected EOF while looking for matching `''
./run_me.sh: line 702: syntax error: unexpected end of file
Run Code Online (Sandbox Code Playgroud)

但是,我可以看到第 693 行没有任何问题。它甚至没有引用。

我试过运行bash -x run_me.sh,并且可以看到最后一行运行,但该行也没有任何问题(该行和 693 之间的代码实际上是大部分代码)。

我可以注释掉整个代码,但是我更有可能看到由于缺少函数等而导致的错误,而不是我得到的 EOF 错误。

那么如果行号报告不正确,人们应该如何找到丢失的报价?

(无论如何,为什么 bash 的行号报告如此遥远?)

编辑

顺便说一句,我发现了我的特定错误(通过评论条带),这实际上是}在任意行号处的变量扩展中缺少错误消息指示的行——基于引号的语法突出显示在这里没有帮助,例如"${MY_ARRAY[@]"(应该是"${MY_ARRAY[@]}")中缺少的大括号。

bash debugging shell-script

8
推荐指数
3
解决办法
9642
查看次数

标签 统计

bash ×1

debugging ×1

shell-script ×1