jsp判断字符串相等_谈一谈关于shell编程中的字符串比较的两种方式

本文介绍了Shell编程中字符串比较的两种方式。方式一有两种格式,可判断字符串相等、不等、是否为空等,变量需加引号防报错;方式二格式为[[ 字符串1 操作符 字符串2 ]],能解决变量带空格问题,还可使用通配符,可按需选择。

谈一谈关于shell编程中的字符串比较的两种方式

Shell编程有时处理一个对象时,需要我们对对象进行测试。

只有符合要求的才采取下一步操作,这样做的好处可以避免程序出错。

这个测试的对象可以是文件、字符串、数字等等。

下面我们来简单的看一下对于字符串比较。

1、 字符串比较方式一

格式1:

[ 字符串1 操作符 字符串2 ]

操作符:

=

!=

格式2:

[ 参数 字符串 ]

参数:

-z:字符串内容为空

-n:字符串内容非空

案例:

//定义两个变量

str1="string1"

str2="string2"

//比较两个字符串是否相等

[ "${str1}" = "${str2}" ] && echo "yes" || echo "no"

no

//比较两个字符串是否不相等

[ "${str1}" != "${str2}" ] && echo "yes" || echo "no"

yes

//判断字符串是否为空

[ -z "${str1}" ] && echo "yes" || echo "no"

no

//判断字符串是否不为空

[ -n "${str1}" ] && echo "yes" || echo "no"

yes

提示:

"${str1}" = "${str2}"中的变量要加上"",防止出现为空命令报错

40833d84157bc63e7639d8d9c665c3ab.png

2、 字符串比较方式二

格式:

[[ 字符串1 操作符 字符串2 ]]

案例:

//定义一个变量a

a="123 456"

//使用方式一"${a}"没有问题

[ "${a}" = "123 456" ] && echo "yes" || echo "no"

yes

//使用方式一${a}不加引号出现错误

[ ${a} = "123 456" ] && echo "yes" || echo "no"

bash: [: too many arguments

no

//使用方式二${a}没有问题

[[ ${a} = "123 456" ]] && echo "yes" || echo "no"

yes

8d55166ac2f06c74f056b10bf2f68e6c.png

通过方式一和方式二的对比

方式二可以解决变量中a="123 456"带空格的问题

当然方式一通过加双引号也是可以解决

方式一是一个比较传统的方法,至于方式一二的使用

根据自己的需求进行选择

补充:

方式二中可以使用通配符

[odysee@kingdom shellFiles]$ str="123"

[odysee@kingdom shellFiles]$ [[ ${str} = ??? ]] && echo "yes" || echo "no"

yes

[odysee@kingdom shellFiles]$ [[ ${str} = ?? ]] && echo "yes" || echo "no"

no

[odysee@kingdom shellFiles]$ [[ ${str} = * ]] && echo "yes" || echo "no"

yes

621852cb64b9e404f3a9f51bacfea001.png

欢迎大家给予宝贵的意见或者建议。

欢迎大家补充或者共享一些其他的方法。

感谢支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值