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”附近的语法错误的主要内容,如果未能解决你的问题,请参考以下文章