繁体   English   中英

Shell脚本变量值

[英]Shell script variable value

我在文件中写入了值0.000000。 我打开文件并将其分配给变量。 但是当我比较它的值时, if [ "$var" -eq "0.000000" ]结果不是true。 可能是什么原因?

此外,如果文件只有0,并且如果我比较它的值[ "$var" -eq "0" ]则它的计算结果应为true。

正如Fredrik(对他而言为+1)所说,bash不支持浮点。 如果必须,请使用字符串比较:

if [ "$var" = "0.000000" ]

您可能会切换到支持浮点运算的ksh:

$ bash
a=0.00000
[ $a -eq 0 ] && echo ok || echo ko
bash: [: 0.00000: integer expression expected
ko
$ ksh
$ a=0.00000
$ [ $a -eq 0 ] && echo ok || echo ko
ok
$ a=0.00001
$ [ $a -eq 0 ] && echo ok || echo ko
ko

bash无法理解浮动。 尝试使用bc ,如果等式为true,则返回1,否则返回0。

if [ $(bc <<< $var==0.000000) -eq 1 ]
then

fi

expr

if [ $(expr $var == 0.000000) -eq 1 ]
then

fi

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM