私のbashスクリプトの次の行は、複数のOR演算子を評価しません。最初の項目を確認して続行してください。
if [[ "${SERVER_NAME}" != $BITBUCKET || $CONFLUENCE || $CROWD || $JIRA || $JENKINS ]]; then
other code here...
fi
bash -x
スクリプトから私はこれを得ました。
+ [[ crowd.server.com != code.server.com ]]
以下は$BITBUCKET
変数です。続行する前に、すべての変数を評価するために$SERVER_NAME
必要です。crowd.server.com
ベストアンサー1
これは予想されます。演算子の1項 ||
がと評価されると、シーケンスtrue
全体の値はになりますtrue
。
演算子を使用して&&
、比較したい文字列に基づいて文字列比較演算子を複数回使用してみてください。
より良い方法は、case
次の文を使用することです。
case "${SERVER_NAME}" in
"$BITBUCKET" | "$CONFLUENCE" | "$CROWD" | "$JIRA" | "$JENKINS") ;; # do nothing for these servers
*)
# your original code here...
;;
esac