2015-09-11 162 views
0

我想比較兩個字符串,然後再比較兩個字符串。 因此,如果$版本不等於5並且類型不等於dbma 或者如果$ version不等於6並且$ type不等於dbmy比較bash中的兩個字符串

我無法完全理解語法。

if [[ "${version}" != "5" ]] && [[ "${type}" != "dbma" ]] || [[ "${version}" != "6" ]] && [[ "${type}" != "dbmy" ]] 
then 
    xyz 
else 
    abc 
fi 

有人可以幫忙嗎?

+2

您的問題與您的代碼一樣不明確。如果((版本不是5,類型不是「dbma」)或版本不是6)和類型不是「dbmy」,shell會將這個從左向右解析爲正確的,但是您應該爲您添加類似的括號問題來指定你的意思。我猜你想(foo和bar)或(baz和quux)實際上? – tripleee

回答

1

假設這是你真正的意思是......

if [[ ($version != 5 && $type != "dbma") || ($version != 6 && type != "dbmy") ]] 

[[內置允許表達式中括號和邏輯運算符(而傳統[既沒有和新版本有-a-o爲「和「和」或「,但沒有括號)。

+0

非常感謝! – freddie