0

以下代码有什么问题?

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

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

4

2 回答 2

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

在进行字符串操作时始终引用字符串变量。并且[[ ]]是更好的选择。在这里这里阅读

于 2013-08-12T09:59:09.337 回答
0

剧本的意义何在?该脚本只能根据规范进行验证。它做你想做的事吗?它会给你一个错误吗?

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

$ grep -qF "moon" file2 && echo "hi"
于 2013-08-12T10:05:15.487 回答