在 seq 命令中保留值的小数部分?

Retain decimal portion of value in seq command?

我正在编写一个脚本,该脚本需要找到 Apple SDK 以便从命令行进行交叉编译。 SDK names have a particular format and it includes a version number:

当我运行下面的脚本使用the seq command时,当小数部分为0时,小数部分被舍去。即6.0显示为6。其他值都可以:

for i in $(seq 20.0 -0.1 4.3)
do
   echo "Value: $i"
done

例如:

$ ./count.sh 
Value: 20
Value: 19.9
Value: 19.8
Value: 19.7
Value: 19.6
Value: 19.5
Value: 19.4
Value: 19.3
Value: 19.2
Value: 19.1
Value: 19
...

我不确定 seq 是否没有生成尾随 0,或者 echo 正在删除尾随 0。无论哪种情况,我都需要保留它。

如何保留值的小数部分 i?

seq(1) takes a printf(3) 使用参数 -f 样式格式化字符串,因此您可以 seq -f "%.1f" 20.0 -0.1 4.3.

给出:

$ seq -f "%.1f" 1 0.1 2
1.0
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9