2015-09-11 163 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