Bash Shell 中 特殊的 字符串测试符号: =~


 

        此链接通往 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

 

=~ 使用例子:

结合 “=~” 来实现:使用位置变量的时候,自动提醒用户输入位置变量参数 和 位置变量参数的类型!


每写一个 .sh 的脚本,系统会自动为脚本添加注释消息:

使用 $RADNOM 如何自动打印不同颜色的字体?

发布了99 篇原创文章 · 获赞 72 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/ljlfather/article/details/105167352