このスクリプトの最後の行に「予期しないファイルの終わり」構文エラーが発生するのはなぜですか?
{ [ $# -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
}