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

スクリプトのポイントは何ですか?スクリプトは、仕様に対してのみ検証できます。それはあなたが望むことをしますか?それはあなたにエラーを与えますか?

2 つのファイルから読み取っているが、2 番目のファイルのみを使用している場合に見られる主な問題。あなたのスクリプトは次のものに置き換えることができるようです:

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