有人可以解释&& ||,-a和-o Unix操作符之间的区别?
对这两种类型的使用有什么限制?
简单来说,&&&和||在使用条件的时候应该使用运算符?
如:
[“$ 1”=“是”]&& [-r $ 2.txt]
与:
[“$ 1”=“是”-a $ 2 -lt 3]
经验法则:在方括号内使用-a和-o,&&和||外。
了解shell语法与[command的语法之间的区别很重要。
>&&&和||是shell操作符。它们用于组合两个命令的结果。因为它们是shell语法,它们具有特殊的语法意义,不能用作命令的参数。
> [不是特殊的语法。它实际上是一个命名,也称为测试。由于[只是一个常规的命令,它使用-a和-o作为其和和/或操作符。它不能使用& amp;&和||因为那些命令没有看到的shell语法。
可是等等! Bash具有[[]]形式的优点测试语法。如果使用双方括号,则可以访问正则表达式和通配符。您也可以使用像& amp;& |||,<和>自由地在括号内,因为不同于[,双括号的形式是特殊的shell语法。 Bash解析[[本身,所以你可以写这样的东西,如[[$ foo == 5&& $ bar == 6]]。