0.050
我想简单地在 bash 脚本中重新分配一个变量(具体来说,将其增加)。在我编写的以下脚本中,i
是一个(整数)索引,mytime
是一个小数/双精度/浮点数。 “ps”(皮秒)是我在计算中使用的时间单位。
#!/bin/bash
mytime = 0.000
for i in {1..3}
do
echo "$i: $mytime ps"
mytime = mytime + 0.050
done
但是,当我使用运行该脚本时bash test.sh
,出现以下错误消息:
test.sh: line 2: mytime: command not found
1: ps
test.sh: line 6: mytime: command not found
2: ps
test.sh: line 6: mytime: command not found
3: ps
test.sh: line 6: mytime: command not found
为什么它似乎被解释mytime
为命令或函数,而不是变量?你能帮我纠正这个问题吗?
答案1
for i in $(seq 1 0.05 3); do
# loop body
echo i equals $i
done
答案2
两个问题:
- 不要使用空白。赋值是
VAR=value
, 不是VAR = value
,VAR =value
或VAR= value
。它必须是一个 shell 空格分隔的标记,而不是两个或三个)。 - shell 不做这样的算术。对于整数数学,你可以说
VAR=$(($VAR+1))
,或者你可以用无数种其他方式(整数,浮点,中缀,后缀,甚至可能是前缀,任意精度和厨房水槽)来阅读这个优秀的问题:如何在 bash 或任何可用语言中进行命令行整数和浮点计算?