このスクリプトで「予期しないファイルの終わり」構文エラーが発生するのはなぜですか?

このスクリプトで「予期しないファイルの終わり」構文エラーが発生するのはなぜですか?

このスクリプトの最後の行に「予期しないファイルの終わり」構文エラーが発生するのはなぜですか?

{ [ $# -ne 2 ] && [ $# -ne 3 ] } && { echo "Uso: $0 [opciones] [nlineasresultado] [archivos a analizar]" && echo "NEED 2 OR 3 PARAMETERS" && exit 1 }
echo sucessfull
exit 0

ベストアンサー1

bash中かっこ(、)を使用するときの構文を示すマニュアルページを参照してください。{}

{ list; }

これは、複数のセミコロンが欠落していることを意味します。

{ [ $# -ne 2 ] && [ $# -ne 3 ]; } && { echo "Uso: $0 [opciones] [nlineasresultado] [archivos a analizar]" && echo "NEED 2 OR 3 PARAMETERS" && exit 1; }

同じ目的を達成するために改行文字を使用することもできます。つまり、これはバグです。

{ echo hello }

しかし、これはうまくいきます:

{ echo hello; }

このように:

{
echo hello
}

おすすめ記事