在 bash 中从 0.01 循环到 0.5

问题描述 投票:0回答:4

我正在 bash 中创建一个脚本来调用命令 100 次,每次都改变浮点参数。我需要用 0.01、0.02、0.03 直到 0.5 来调用它。由于我无法在条件或步骤中使用浮点数创建循环,因此我不确定如何执行此操作。我尝试执行从 1 到 50 的循环,然后在内部将数字除以 100,将其转换为浮点数,然后用它调用命令,但然后是命令(基本上我正在调用 Weka,数字对应于置信区间)无法正确识别参数,所以也许我使用了错误的数据类型。

提前致谢! 帕特里西奥

bash loops decimal weka
4个回答
8
投票
for i in `seq 0.01 0.01 0.5`; do  echo "called with $i" ; done

这将创建一个 0.01 到 0.5 的序列,增量为 0.01。因此,请将

echo
替换为您需要的呼叫。


0
投票

如果你确实无法使用abasu(+1)提出的解决方案,你可以尝试这样的方法:

for i in `seq 1 50`; do
  n=$(echo $i | awk '{printf "%.2f", $1 / 100}')
  echo $n
done

或者像这样:

for i in `seq 1 50`; do
  n=$(printf "0.%02d" $i)
  echo $n
done

0
投票
for i in $(seq 0.01 0.01 0.5);do
...
done

0
投票

选择答案之一,但如果您想使用真正的浮动值(而不是字符串),请考虑使用区域设置更改,如果您位于浮动精度“点”区域之外:

seq 0.1 0.5 1.1
0,1
0,6
1,1

而对于区域设置

LANG=en;seq 0.1 0.5 1.1
0.1
0.6
1.1 
© www.soinside.com 2019 - 2024. All rights reserved.