私はbashスクリプトを書いていますが、!=演算子が動作しない理由を理解できません。bash not equalオペレータが動作しない
#/bin/bash
vips=()
vips+=(" Ltm::HTTP Profile: Default_HTTP_Profile")
vips+=(" Ltm::Virtual Address: 10.206.16.76")
for i in "${vips[@]}";
do
if [[ $i != *"TCP Profile"* ]] || [[ $i != *"OneConnect"* ]] || [[ $i != *"HTTP Profile"* ]]; then
echo "test"
fi
done
for i in "${vips[@]}";
do
echo "$i"
done
あなたが第二の配列要素を見ることができるように、この結果からは
test
test
Ltm::HTTP Profile: Default_HTTP_Profile
Ltm::Virtual Address: 10.206.16.76
で一致するものがあれば、論理はず。
最初のブランチがtrueを返すと、なぜ3番目のブランチに移動するのですか? –
1.変数を引用します。 2. 'set -x'を実行して、実際に何が実行されているかを確認します。 –
ok私はダムです。あなたの言ってる事がわかります。最初のブランチは両方に一致し、-or演算子は動作しません。私が望むことをするためにはネストされたIFが必要なように見えます。 –