bash スクリプトで変数を再割り当て(具体的には増分)する

bash スクリプトで変数を再割り当て(具体的には増分)する

重複の可能性あり:
bash または利用可能な任意の言語で、コマンドラインの整数と浮動小数点の計算を行うにはどうすればよいでしょうか?

0.050bash スクリプトで変数を単純に再割り当て (具体的には ずつ増分) したいです。私が書いた次のスクリプトでは、iは (整数) インデックスで、mytimeは 10 進数/倍精度浮動小数点数です。「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

2つの問題:

  1. 空白を使用しないでください。代入は でありVAR=valueVAR = valueまたはVAR =valueではありませんVAR= value。 シェルの空白で区切られたトークンは 1 つである必要があり、2 つや 3 つではありません。
  2. シェルはそのような演算は行いません。整数演算の場合は、 と入力するVAR=$(($VAR+1))か、この優れた質問を読んで、他の無数の方法 (整数、浮動小数点、中置、後置、場合によっては前置、任意の精度、その他) を知ることができます。bash または利用可能な言語で、コマンドラインの整数と浮動小数点の計算を行うにはどうすればよいでしょうか?

関連情報