【发布时间】:2012-02-02 14:26:09
【问题描述】:
Shell 脚本的新手我注意到意外令牌的语法错误报告具有以下格式
`unexpectedtoken' # ie backtick unexpected_token singlequote
反引号和单引号代表什么?它们不存在于脚本本身中。 它们与外壳有关,但是什么?
更具体地说,我目前从同一行收到两个错误报告,这应该有助于我的调试尝试,但我不知道如何解释它们。该脚本有一个参数被传递给一个函数。
append2file \
"(common params for all samples; exemplar: ${monoArr2[@]:(-1)})"
参数行 (line154) 上的第一个括号是意外标记。这也会触发第二次错误报告。
./process_v7.sh: line 154: syntax error near unexpected token `('
./process_v7.sh: line 154: ` "(common params for all read_2 samples; exemplar: ${monoArr2[@]:(-1)})" \'
前导反引号和双引号字符串开头之间的间距必须告诉我一些有助于我调试的信息,但是什么??? TIA
M
【问题讨论】:
-
您上面的代码很好,假设第 153 行的 \ 之后没有空格,并且第 152 行不以 \ 结尾。语法错误可能是由第 140-152 行中的代码引起的。显示更多。
-
解决了!我使用 vi 从第 154 行搜索 double_quotes 并在脚本的前面找到了一个流浪者。感谢威廉的提示。