簡體   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