此链接通往 Bash Shell 编程学习的目录导航 ,从入门到放弃,感兴趣的可以去看看:
关于 字符串测试运算符,咱们都知道有 : -a 、-n、 =、!=、> 、< 。
-a : # 判断是否为空字符串,是空则为 true。
-n : # 判断是否为非空字符串,非空则为 true。
= :# 判断两个字符串是否相等,等于为 true 。
!= :# 判断两个字符串是否不相等,不等于为 true 。
> : # 从字典上看,如果 string1 排在 string2 之后,则为 true 。
< : # 从字典上看,如果 string1 排在 string2 之前,则为 true 。
但是还有一个特殊的 字符串测试符 : =~
=~ 的作用:测试 =~ 左侧的字符串能否被右侧的 PATTERN 所匹配!
注意:此表达式一般用于 [[ ]] 中!
root@zhengzelin:~# echo $a
abc
root@zhengzelin:~# [[ $a =~ ^[a-z]+$ ]];echo $?
0
root@zhengzelin:~# a=1
root@zhengzelin:~# [[ $a =~ [a-z] ]];echo $?
1
# 这两个例子看懂了吗????
第一个: 当 $a=abc 的时候,符合右边的 PATTERN : ^[a-z]+$ #(以小写数字开头,并且不止一个小写数字,并且以小写数字结尾!)
第二个 $a 就是 1,不符合那个 PATTERN。
=~ 使用例子:
结合 “=~” 来实现:使用位置变量的时候,自动提醒用户输入位置变量参数 和 位置变量参数的类型!