简体   繁体   English

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

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

I'd like to generate a sequence of equally spaced decimal numbers. 我想生成一系列等间距的十进制数。

For example, I want to echo all numbers between 3.0 and 4.5 , with step 0.1 . 例如,我想echo 3.04.5之间的所有数字,步骤0.1 I tried $ for i {3.0..4.5..0.1}; do echo $i; done 我试过$ for i {3.0..4.5..0.1}; do echo $i; done $ for i {3.0..4.5..0.1}; do echo $i; done $ for i {3.0..4.5..0.1}; do echo $i; done , but this gives an error. $ 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; done 我也尝试过$ for i in $(seq 3.0 4.5 0.1); do echo $i; done $ for i in $(seq 3.0 4.5 0.1); do echo $i; done $ 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); do echo $i; done但没有任何反应。

I also tried $ for i in $(seq 3.0 4.5 0.1); 我也尝试过$ $ $(seq 3.0 4.5 0.1); do echo $i; 回声$ i; done but nothing happens. 完成但没有任何反应。

The order is wrong: 订单错了:

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

If you're looking for a loop from 3.5 to 4.5 in 0.1 steps this would work 如果你正在寻找一个从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
 for i in {3.0,4.5,0.1}; do echo $i; done

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM