Bash 错误:在“for..in”结构内嵌套“if..elif”

Bash 错误:在“for..in”结构内嵌套“if..elif”

当我运行下面的代码时:

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.shbash script.sh

相关内容