以下bash脚本是否正确?

时间:2013-08-12 09:56:50

标签: bash shell

以下代码有什么问题?

while read -r -u 3 line1 && read -r -u 4 line2
do 
    if [ $line2 = "moon" ] #can i do this?
       echo "hi"
    fi
done 
done 3<file1 4<file2

file1file2是文本文件,脚本是更大的scrit的一部分。我得到的错误是syntax error near unexpected token elif [[ "$line2" = "moon" ]]

2 个答案:

答案 0 :(得分:1)

if [[ "$line2" = "moon" ]];
then 
echo "hi"
fi

在执行字符串操作时始终引用字符串变量。 [[ ]]是更好的选择。 阅读herehere

答案 1 :(得分:0)

脚本有什么意义?该脚本只能根据规范进行验证。它能做你想要的吗?它会给你一个错误吗?

我看到的主要问题是你是从两个文件中读取而只是使用第二个文件。看来您的脚本可以替换为:

$ grep -qF "moon" file2 && echo "hi"