Unixシェルスクリプトに "]"エラーがありません。

Unixシェルスクリプトに

両方の変数が空であることを確認する小さなスクリプトを実行しようとしています。正しい出力が得られましたが、閉じカッコが欠落しているというエラーも表示されます。二重かっことかっこを使ってみましたが、うまくいきませんでした。

var=""
non="hi"

 if ([ -z "$var"] && [ -z "$non"])
then
    echo "both empty"

else
    echo "has data"
fi

出力:

line 6: [: missing `]'
has data

ベストアンサー1

"$non" と ] の間にはスペースが必要で、 () はあってはなりません。

if [ -z "$var" ] && [ -z "$non" ]

おすすめ記事