地味に間違えるやつ。
※以下の処理内容は適当です。
変数が空じゃないとき
$ a="a"
$ if [ $a != "hoge" ]; then echo "not hoge"; fi
not hoge
変数が空のとき
$ a=""
$ if [ $a != "hoge" ]; then echo "not hoge"; fi
bash: [: !=: 単項演算子が予期されます
!=
が怒られてて、単行演算子を予期していたとのことなので、おそらく if [ != "hoge" ]
と解釈されていると思われます。
これで解決
$ a=""
$ if [ "$a" != "hoge" ]; then echo "not hoge"; fi
not hoge
変数って""で挟んでもいいんですね。
環境
Linux Mint 21.3
bash 5.1.16(1)-release (x86_64-pc-linux-gnu)