【问题标题】:Loop increasement with 0.5循环增加 0.5
【发布时间】:2016-08-23 13:00:09
【问题描述】:

我有写入文件的循环,但我想将每个 0.5 值写入文件。我尝试使用let count+=0.5,但这并没有奏效。这可能吗?

脚本:

#!/bin/bash
COUNTER=50
count=0
until [  $COUNTER -lt 20 ]; do
        echo $count >> value.txt
        echo COUNTER $COUNTER
        let COUNTER-=1
        let count+=0.5
        sleep 1
done

【问题讨论】:

标签: bash file loops


【解决方案1】:

bash 本身不做浮点运算;您需要使用外部工具。 -= 也不是受支持的运算符。

until [ "$COUNTER" -lt 20 ]; do
    printf "%0.1f\n" "$count"
    echo "COUNTER $COUNTER"
    count=$(bc <<< "$count + 0.5")
    COUNTER=$((COUNTER - 1))
    sleep 1
done > value.txt

【讨论】:

  • 正是我要建议的:+1
  • 我收到此错误:./test.sh: line 7: bc &lt;&lt;&lt; "0 + 0.5": syntax error: operand expected (error token is "&lt; "0 + 0.5"")
  • 您确定您使用的是bash吗?请改用count=$((echo "$count + 0.5" | bc))
  • 我正在使用 bash,因此我收到此错误 ./test.sh: line 10: echo "0 + 0.5" | bc: syntax error: invalid arithmetic operator (error token is ""0 + 0.5" | bc")
  • 呃。我数不过来。我在答案中做了一些复制/粘贴,忘记将$((...)) 更改为$(...) 以获取bc 命令。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-03
  • 1970-01-01
  • 2014-12-12
  • 2012-04-25
  • 2018-01-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多