鱼C论坛

 找回密码
 立即注册
查看: 426|回复: 11

请问各位大神,echo $((5==5))为什么返回1呢

[复制链接]
发表于 2023-10-31 17:18:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问各位大神,echo $((5==5))为什么返回1呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-10-31 17:19:38 | 显示全部楼层
在Shell脚本中,$((...))是用于进行算术运算的语法。在表达式中,==表示等于操作符。当比较两个数相等时,表达式的结果为真,即返回1。

因此,echo $((5==5))会输出1,表示5等于5。这是因为==运算符用于比较两个数是否相等,并且返回一个布尔值,其中1表示真,0表示假。

希望能够解答您的疑问。如果还有其他问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-10-31 17:22:09 | 显示全部楼层
在Bash中, $((...)) 是一种算术扩展语法,用于执行数学运算。在这种语法中, == 是比较运算符,用于比较两个值是否相等。

在这个问题中, 5==5 是一个比较表达式,用于判断数字5是否等于数字5。由于5确实等于5,所以这个比较表达式的结果为真,也就是返回1。

在Bash中,布尔表达式的真值通常用1表示,而假值用0表示。因此,当比较表达式为真时, $((5==5)) 会返回1。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-31 17:32:09 | 显示全部楼层
Mike_python小 发表于 2023-10-31 17:19
在Shell脚本中,$((...))是用于进行算术运算的语法。在表达式中,==表示等于操作符。当比较两个数相等时, ...

那为什么echo $(2>1) 返回值又是0呢,2>1是真,在shell中,测试条件表达式中,真返回0,假返回1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-31 17:33:03 | 显示全部楼层
isdkz 发表于 2023-10-31 17:22
在Bash中, $((...)) 是一种算术扩展语法,用于执行数学运算。在这种语法中, == 是比较运算符,用于比较两 ...

那为什么echo $(2>1) 返回值又是0呢,2>1是真,在shell中,测试条件表达式中,真返回0,假返回1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-31 18:25:39 | 显示全部楼层
sunchaoee 发表于 2023-10-31 17:33
那为什么echo $(2>1) 返回值又是0呢,2>1是真,在shell中,测试条件表达式中,真返回0,假返回1

Snipaste_2023-10-31_18-25-30.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-31 23:06:03 | 显示全部楼层

[root@localhost ~]# echo $(2>1)

[root@localhost ~]# echo $?
0
上面命令执行后,返回的值是0啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-1 17:28:58 | 显示全部楼层
sunchaoee 发表于 2023-10-31 23:06
[root@localhost ~]# echo $(2>1)

[root@localhost ~]# echo $?

发图片
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-3 23:43:30 | 显示全部楼层

echo $(2>1)没有返回结果,用echo $?则返回了0
屏幕截图 2023-11-03 234030.png
屏幕截图 2023-11-03 234030.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-4 00:19:03 | 显示全部楼层
sunchaoee 发表于 2023-11-3 23:43
echo $(2>1)没有返回结果,用echo $?则返回了0

不会了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-7 00:15:45 | 显示全部楼层

还是感谢你的解释
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-20 11:12:22 | 显示全部楼层
概念弄混淆了, echo  $?  返回的结果是你上一个命令执行的结果, 执行成功返回0  执行失败返回1    上面echo  $(2>1)   或者 echo $(1>2)  是比值问题,  无法是否成立 这个命令都是成功的  echo  $?都会返回0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 16:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表