我尝试将浮点数与-gt
进行比较,但它表示该点期望整数值。这意味着它无法处理浮点数。然后我尝试了以下代码
chi_square=4
if [ "$chi_square>3.84" | bc ]
then
echo yes
else
echo no
fi
但输出错误。这是输出 -
line 3: [: missing `]'
File ] is unavailable.
no
此处no
已回显,但应为yes
。我认为这是因为它显示的错误。有谁能够帮我。
答案 0 :(得分:2)
如果您想使用bc
,请按照以下方式使用它:
if [[ $(bc -l <<< "$chi_square>3.84") -eq 1 ]]; then
echo 'yes'
else
echo 'no'
fi
答案 1 :(得分:0)
保持简单,只需使用awk:
$ awk -v chi_square=4 'BEGIN{print (chi_square > 3.84 ? "yes" : "no")}'
yes
$ awk -v chi_square=3 'BEGIN{print (chi_square > 3.84 ? "yes" : "no")}'
no
或者如果您希望出于某种原因避免使用三元表达式(并且还显示如何使用存储在shell变量中的值):
$ chi_square=4
$ awk -v chi_square="$chi_square" 'BEGIN{
if (chi_square > 3.84) {
print "yes"
}
else {
print "no"
}
}'
yes
或:
$ echo "$chi_square" |
awk '{
if ($0 > 3.84) {
print "yes"
}
else {
print "no"
}
}'
yes
或将它整整一圈:
$ echo "$chi_square" | awk '{print ($0 > 3.84 ? "yes" : "no")}'
yes