非整数计数器用于执行...直到bash中的循环

时间:2016-02-25 15:52:42

标签: bash

我目前正在使用bash 3.2.51

我试图创建一个简单的do to循环,以0.05的小间隔逐步增加。我当前的代码如下所示,它适用于整数,但是当我使用非整数时,它会失败并出现错误。

x=0.05
until [ $x -gt 1.20 ]
do
//some code //
x =$((x+0.05))
done

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

bash目前不支持float变量,您需要将任务委托给其他程序。

$echo $((1+0.05))
bash: 1+0.05: syntax error: invalid arithmetic operator (error token is ".05")
$ echo $(echo "1+0.05" | bc -l)
1.05
$ bash -version
GNU bash, version 4.3.30(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$ 

更多信息:https://unix.stackexchange.com/questions/40786/how-to-do-integer-float-calculations-in-bash-or-other-languages-frameworks