阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

shell字符串比较、判断是否为数字入门案例

2次阅读
没有评论

共计 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

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-12-16发表,共计932字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中