Lur*_*rch -4 bash integer if-statement
我正在编写一个脚本,其中一部分会输出一个数字$ stats,即74.9,如果它小于100,那么如果不是它就会失败.我试过了
do stuff
done
echo $stats
if [ $stats -gt 100 ]; then
echo "PASS"
else
echo "FAIL"
fi
Run Code Online (Sandbox Code Playgroud)
但它失败了
72.4
./runme.sh: line 66: [: 72.4: integer expression expected
FAIL
Run Code Online (Sandbox Code Playgroud)
72.4显然不是整数.Bash只支持整数运算.
常见的解决方法包括:
if [ ${stats%.*} -gt 100 ]; then...if [ $(echo "$stats > 100.0" | bc) = 1 ]; then...(可能会有更优雅的方式来表达这一点;但它往往很痛苦.)if [ ${stats%.*}${stats#*.} -gt 10000 ]; then...| 归档时间: |
|
| 查看次数: |
379 次 |
| 最近记录: |