shell脚本变量值
我在文件中写入了值 0.000000 。我打开该文件并将其分配给一个变量。 但是当我比较它的值时,如 if [ "$var" -eq "0.000000" ]
它的计算结果并不为 true。 可能是什么原因?
此外,如果文件只有 0,并且如果我比较它的值 [ "$var" -eq "0" ]
,它的计算结果将按预期为 true。
I have value 0.000000 written in a file. I open the file and assign it to a variable.
But when i compare it's value like if [ "$var" -eq "0.000000" ]
it doesn't evaluate to true.
What could be the reason?
Moreover, if the file has just 0, and if i compare it's value [ "$var" -eq "0" ]
it evaluates as expected to true.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
正如 Fredrik(为他+1)所说,bash 不支持浮点。如果必须,请使用字符串比较:
As Fredrik (+1 for him) said, bash does not support floating point. If you must, use string comparison:
您可以切换到支持浮点运算的 ksh:
You might switch to ksh which supports floating point arithmetic:
bash 无法理解浮点数。尝试使用 bc,如果相等则返回 1,否则返回 0。
或
expr
:bash can't understand floats. Try using
bc
, which will return 1 if the equality is true, 0 otherwise.or
expr
: