![Bash 错误:在“for..in”结构内嵌套“if..elif”](https://linux22.com/image/825505/Bash%20%E9%94%99%E8%AF%AF%EF%BC%9A%E5%9C%A8%E2%80%9Cfor..in%E2%80%9D%E7%BB%93%E6%9E%84%E5%86%85%E5%B5%8C%E5%A5%97%E2%80%9Cif..elif%E2%80%9D.png)
当我运行下面的代码时:
IFS=$'\n'
for line in `more extensions.txt` do
if grep '[219..223]' ${line:96:4} ; then
...
else
...
fi
done
我不断收到错误:
bash: syntax error near unexpected token 'if'
有人能帮忙吗?
答案1
您在 之前缺少分号或换行符do
。
下面两个脚本都可以运行。
IFS=$'\n'
for line in `more extensions.txt` ; do
if grep '[219..223]' ${line:96:4} ; then
echo "1"
else
echo "2"
fi
done
IFS=$'\n'
for line in `more extensions.txt`
do
if grep '[219..223]' ${line:96:4} ; then
echo "1"
else
echo "2"
fi
done
笔记:你的脚本还缺少舍邦。最好将其包含在脚本的第一行中。
这允许您使用以下方式调用脚本:
./script.sh
如果文件的可执行位已设置,则除了sh script.sh
或bash script.sh