首页 > 分享 > linux shell(bash)测试表达式中“==“和“

linux shell(bash)测试表达式中“==“和“

enbug 已于 2022-09-28 20:09:16 修改

于 2019-12-22 23:21:21 首次发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

首先要明白一个概念:bash中所有的变量都是字符串。 对变量进行数值计算时,只不过是临时把字符串转换成数字,然后计算,计算后再把结果数字转换为字符串。

再说"==“和”-eq"的区别
"=="是判断字符串是否相等。
"-eq"是判断字符串对应的数字值是否相等。
举个例子。
创建eq.sh脚本

>vi eq.sh 1

内容如下

#!/bin/bash num1=123#num1是长度为3的字符串 num2=0123#num2是长度为4的字符串 echo "======================================" echo -n "用==比较时:" if [ $num1 == $num2 ] thenecho "$num1和$num2相等" elseecho "$num1和$num2不相等" fi echo "======================================" echo -n "用-eq比较时:" if [ $num1 -eq $num2 ] thenecho "$num1和$num2相等" elseecho "$num1和$num2不相等" fi

1234567891011121314151617181920212223

运行测试

>bash eq.sh 1

结果一目了然

====================================== 用==比较时:123和0123不相等 ====================================== 用-eq比较时:123和0123相等 1234

结论:
==直接比较字符串,-eq比较字符串对应的数字值。
!=、>、 <、 >=、 <= 与-ne、 -gt、 -lt、 -ge、 -le 的区别依此类推

相关知识

linux的shell中变量的含义
shell 字符串分割与连接
Linux Shell 之引号(单引号;双引号;反引号)
【Linux】用户权限管理:创建受限用户并配置特定目录访问权限
命令行的艺术
sed、awk调用shell变量的方法
命令行的艺术 (GitHub 星标 6 万多)
linux expect的使用详解,实例
linux device driver Makfile
爱捣鼓Shell编程3:相等判断符=、==、

网址: linux shell(bash)测试表达式中“==“和“ https://m.huajiangbk.com/newsview1093097.html

所属分类:花卉
上一篇: 《流芳馥郁香深邃》花随柳 ^第1
下一篇: 滋补虫草花板栗乌鸡汤