bash 如何在bash中循环遍历一系列十进制数?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/30768644/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-18 13:11:05  来源:igfitidea点击:

How to loop through a range of decimal numbers in bash?

linuxbashfor-loopseq

提问by izxle

I'd like to generate a sequence of equally spaced decimal numbers.

我想生成一系列等距十进制数。

For example, I want to echoall numbers between 3.0and 4.5, with step 0.1. I tried $ for i {3.0..4.5..0.1}; do echo $i; done, but this gives an error.

例如,我想将和echo之间的所有数字与 step 。我试过了,但这会出错。3.04.50.1$ for i {3.0..4.5..0.1}; do echo $i; done

I also tried $ for i in $(seq 3.0 4.5 0.1); do echo $i; donebut nothing happens.

我也尝试过,$ for i in $(seq 3.0 4.5 0.1); do echo $i; done但没有任何反应。

回答by Ole Tange

I also tried $ for i in $(seq 3.0 4.5 0.1); do echo $i; done but nothing happens.

我也试过 $ for i in $(seq 3.0 4.5 0.1); 做回声 $i; 完成但没有任何反应。

The order is wrong:

顺序错了:

$ for i in $(seq 3.0 0.1 4.5); do echo $i; done

回答by drpetermolnar

If you're looking for a loop from 3.5 to 4.5 in 0.1 steps this would work

如果您在 0.1 步中寻找从 3.5 到 4.5 的循环,这将起作用

for x in {35..45}; do
     y=`bc <<< "scale=1; $x/10"`
     echo $y
done

The same with 0.01 steps

与 0.01 步相同

for x in {350..450}; do
         y=`bc <<< "scale=2; $x/100"`
         echo $y
done

回答by bmscomp

 for i in {3.0,4.5,0.1}; do echo $i; done