我一直在寫一個bash腳本,我找不到爲什麼!=運算符不工作。bash不等於運營商不工作
#/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時,爲什麼它會到達第三個分支? –
1.引用你的變量。 2.使用'set -x'運行以查看實際正在運行的內容。 –
好吧我很笨。我明白你的意思。第一個分支將匹配這兩個,所以 - 或運營商將無法正常工作。看起來我需要一個嵌套的IF來做我想做的事。 –