( -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