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

时间:2016-03-08 19:53:37

标签: bash shell seq

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

  • iPhoneOS7.0.sdk
  • iPhoneOS7.1.sdk
  • iPhoneOS7.2.sdk

当我使用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 的小数部分?

1 个答案:

答案 0 :(得分:2)

seq(1)采用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