Bash for loop syntax error 删除分号并没有解决问题
Bash for loop syntax error removing semicolon didnt do the trick
我正在为编辑器做包装,我有部分错误,我正在检查文件是否已经在特定目录中编辑过。目录以以下格式存储在文件中:path//date//openCount。双斜杠是定界符,因为斜杠是类 unix 系统中名称中唯一禁止使用的字符之一。
/home/test//20150320//1
/home/d3ad/Documents/skola/2015_zima/ios/proj1/ads//20150320//1
/home/d3ad/Documents/skola/2015_zima/ios/proj1/backup.sh//20150320//1
/home/d3ad/Documents/skola/2015_zima/ios/proj1/asd//20150320//7
/home/d3ad/Documents/skola/2015_zima/ios/proj1/bs//20150320//9
代码:
FILE="false"
DIR=$(readlink -f "")
#check if a file was already edited in this directory
for LINE in $(grep -n -o "${DIR}/[^/]*" ${WEDI_RC}); do
if[ -f "${LINE}" ]; then
FILE="true"
fi
done
错误:
./wedi: Syntax error: "then" unexpected (expecting "done")
我尝试删除分号,将 "do" 和 "then" 移到下一行,但都没有用。你有什么想法?我非常绝望,因为我上面有 1 个 for 循环并且它工作正常。
感谢您的回答
if
和 [
之间缺少 space,因此出现语法错误。
if [ -f "${LINE}" ]; then # add missing space
FILE="true"
fi
我正在为编辑器做包装,我有部分错误,我正在检查文件是否已经在特定目录中编辑过。目录以以下格式存储在文件中:path//date//openCount。双斜杠是定界符,因为斜杠是类 unix 系统中名称中唯一禁止使用的字符之一。
/home/test//20150320//1
/home/d3ad/Documents/skola/2015_zima/ios/proj1/ads//20150320//1
/home/d3ad/Documents/skola/2015_zima/ios/proj1/backup.sh//20150320//1
/home/d3ad/Documents/skola/2015_zima/ios/proj1/asd//20150320//7
/home/d3ad/Documents/skola/2015_zima/ios/proj1/bs//20150320//9
代码:
FILE="false"
DIR=$(readlink -f "")
#check if a file was already edited in this directory
for LINE in $(grep -n -o "${DIR}/[^/]*" ${WEDI_RC}); do
if[ -f "${LINE}" ]; then
FILE="true"
fi
done
错误:
./wedi: Syntax error: "then" unexpected (expecting "done")
我尝试删除分号,将 "do" 和 "then" 移到下一行,但都没有用。你有什么想法?我非常绝望,因为我上面有 1 个 for 循环并且它工作正常。
感谢您的回答
if
和 [
之间缺少 space,因此出现语法错误。
if [ -f "${LINE}" ]; then # add missing space
FILE="true"
fi