Bash 脚本中意外标记“if”附近的语法错误

Posted

技术标签:

【中文标题】Bash 脚本中意外标记“if”附近的语法错误【英文标题】:syntax error near unexpected token `if' in Bash Scripting 【发布时间】:2022-01-08 03:48:52 【问题描述】:

尝试查找包含jane 的文件列表中的所有行,然后测试结果是否作为真实文件存在,并将它们的名称附加到文档中。这是我的代码:

#!/bin/bash

> oldFiles.txt

janeSearch=$( grep " jane " ../data/list.txt | cut -d ' ' -f 1,3 )    

for x in $janeSearch;
        if test -e ~/$x: then
                echo $x >> oldFiles.txt
        fi

有人可以解释为什么我会收到以下错误吗?

syntax error near unexpected token `if'

【问题讨论】:

使用;而不是: 另外,您可能在if 之前错过了do 好吧,原谅我的语法不好,我是 bash 脚本的新手! fi 之后还有一个done 与缺少的do 配对。 shellcheck.net 是用于检查 shell 代码中的语法错误的绝佳资源。将其添加到您的开发过程中。 【参考方案1】:

建议尝试以下方法

#!/bin/bash

> oldFiles.txt

janeSearch=$( grep " jane " ../data/list.txt | cut -d ' ' -f 1,3 )    

for x in $janeSearch;
        if (test -e ~/$x); then
                echo $x >> oldFiles.txt
        fi
done

【讨论】:

以上是关于Bash 脚本中意外标记“if”附近的语法错误的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在意外标记 `(' 附近出现语法错误

bash - 意外标记“<”附近的语法错误

原因:意外标记“fi”附近的 Bash 语法错误

意外标记 `' ` 附近的语法错误

关键字 'if' 附近有语法错误。

awk:第 1 行:在或附近出现语法错误,需要一些 bash 帮助 [关闭]