( -a
) は「and」演算子であり-o
、「or」演算子です。
別の方法として、次を使用します。
if [ -n "${activ_con}" ] && [ -z "${activ_vpn}" ]
then
nmcli con up if "${VPN_CONNECTION_NAME}"
fi
"${activ_con}"
これは、 の長さがゼロでないことと、長さがゼロであることを明示的にテストし"${active_vpn}"
ます。これは、Autoconf シェル スタイル ルールで推奨されているスタイルに近いものです (ただし[
、角括弧はメタ文字であるため、テストにはまったく使用されません。一部の古い実装 (おそらく 1980 年代と 1990 年代初頭) には、オペランドを誤解する問題がありました)。これらは混乱を招くオプションであったため、 andtest
の使用を避けるようにアドバイスされています。-a
-o
test
(and[
は の同義語です。test
多くのシステムで/bin/[
は、 へのリンクであるコマンドもあり/bin/test
ますが、シェルは通常、 の組み込み実装を使用しtest
ます) -a
. test
( POSIX サイトのページの根拠セクションに注意してください。)
条件式の GNUbash
仕様は、接続詞としてリストされておらず、まったくリストされていません。それは面白い。-a
-o