共计 932 个字符,预计需要花费 3 分钟才能阅读完成。
二元比较操作符, 比较变量或者比较数字. 注意数字与字符串的区别。
整数比较
-eq 等于, 如:if ["$a" -eq "$b"] | |
-ne 不等于, 如:if ["$a" -ne "$b"] | |
-gt 大于, 如:if ["$a" -gt "$b"] | |
-ge 大于等于, 如:if ["$a" -ge "$b"] | |
-lt 小于, 如:if ["$a" -lt "$b"] | |
-le 小于等于, 如:if ["$a" -le "$b"] | |
大于(需要双括号), 如:(("$a" > "$b")) | |
>= 大于等于(需要双括号), 如:(("$a" >= "$b")) |
字符串比较
= 等于, 如:if ["$a" = "$b"] | |
== 等于, 如:if ["$a" == "$b"], 与 = 等价 | |
注意:== 的功能在 [[]] 和[]中的行为是不同的, 如下: | |
1 [[$a == z*]] # 如果 $a 以 "z" 开头 (模式匹配) 那么将为 true | |
2 [[$a == "z*"]] # 如果 $a 等于 z *(字符匹配), 那么结果为 true | |
3 | |
4 [$a == z*] # file globbing 和 word splitting 将会发生 | |
5 ["$a" == "z*"] # 如果 $a 等于 z *(字符匹配), 那么结果为 true | |
一点解释, 关于 File globbing 是一种关于文件的速记法, 比如 "*.c" 就是, 再如~ 也是. | |
但是 file globbing 并不是严格的正则表达式, 虽然绝大多数情况下结构比较像. | |
!= 不等于, 如:if ["$a" != "$b"] | |
这个操作符将在 [[]] 结构中使用模式匹配. | |
大于, 在 ASCII 字母顺序下. 如: | |
if [["$a" > "$b"]] | |
if ["$a" > "$b"] | |
注意: 在 [] 结构中 ">" 需要被转义. | |
具体参考 Example 26-11 来查看这个操作符应用的例子. | |
-z 字符串为 "null". 就是长度为 0. | |
-n 字符串不为 "null" |
注意:
使用 - n 在 [] 结构中测试必须要用 ”” 把变量引起来. 使用一个未被 ”” 的字符串来使用! - z 或者就是未用 ”” 引用的字符串本身, 放到 [] 结构中。虽然一般情况下可以工作, 但这是不安全的. 习惯于使用 ”” 来测试字符串是一种好习惯.
awk '{print $2}' class.txt | grep '^[0-9.]' > res
正文完
星哥玩云-微信公众号
