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 或任何可用語言中進行命令列整數和浮點計算?