济南pc网站建设公司,宿迁网络科技有限公司,网站在线制作软件,中国交通建设集团引言
我们在使用shell编写脚本时#xff0c;经常需要对字符串进行处理#xff0c;如字符串大小比较、模式匹配、替换、截断等。本文将梳理字符串比较中常见的用法。
字符串比较
1. 直接比较字符串
a$1
b$2
c
# 等于
if [ $a abc ];thenecho $a
…引言
我们在使用shell编写脚本时经常需要对字符串进行处理如字符串大小比较、模式匹配、替换、截断等。本文将梳理字符串比较中常见的用法。
字符串比较
1. 直接比较字符串
a$1
b$2
c
# 等于
if [ $a abc ];thenecho $a
fiif [ $b dfg ];thenecho $b
fiif [[ $c ]];thenecho empty
fi# 不等于
if [[ $c ! ]];thenecho !empty
fi# 大于
if [[ $a abc ]];thenecho $a
fi# 小于
if [[ $a abc ]];thenecho $a
fi# 大于等于
if [[ ! $a abc ]];thenecho $a
fi# 小于等于
if [[ ! $a abc ]];thenecho $a
fi注意当只有单个中括号的情况下比较的参数有为空的情况下会报错可以使用双中括号[[]]。或者如下
if [ x$c x ];thenecho empty
fi2. 模式匹配
if [[ $a *ca ]];then # *匹配任意个字符匹配以ca结尾的字符串echo $a
fiif [[ $a ?ft ]];then # ?匹配一个字符echo $a
fiif [[ $a ?*t ]];then # ?*匹配至少一个字符echo $a
fi如匹配包含某个字符串可以这么写
if [[ $a ~ abc ]]; then # 如eabcd包含abcecho $a
fi或
if [[ $a *abc* ]]; then # 如eabcd包含abcecho $a
fi总结
尽量使用双中括号[[]]能够避免很多逻辑错误比单中括号[]更加清晰。