共计 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
正文完
星哥玩云-微信公众号