私はbashコマンドを使ってforループでインクリメントする方法をいくつか試しました。 $ VARがループを通過するたびに、リセットされます。 letとletを使用せずに両方の出力を追加しました。私はなぜそれをdoesnt does doesn使っていないのか分かりません。
それは次のように書き出されていますとき、私のコードが正しく動作:
echo "Initial value: $VAR"
for file in a b c; do
VAR=$((VAR+1))
echo "Incremented"
done
echo "Final value: $VAR"
が、それは次のように動作しません。
echo "Initial value: $VAR"
for file in a b c; do VAR=$((VAR+1)) echo "Incremented"; done
echo "Final value: $VAR"
同様に、私はlet
を使用する場合、それは動作します:
for file in a b c; do let VAR++; echo "Incremented"; done
違いは何ですか?
これはbashで使用されるコマンドです。私は、各反復ごとに値を印刷して、それに常に「ヒット」という単語を含むファイルに1を表示しました。 –
私はそうは思わない。私は2011年からMacを持っています。私は標準がbashだと思っています。あなたはどちらの時にも出力を表示します –
Macはbash 3.2を使用するべきですが、これはかなり古いですが、標準のPOSIX数学構文をサポートします。 –