Xにx + 1の値を割り当てるにはどうすればよいですか?私は他の言語でそれを行うことができますが、bashでそれを理解することはできません。
私はちょうど2つの異なる方法をテストし、両方とも私のために働きました:
x=$((x+1))
...または...
x=$((++x))
これでうまくいくはずです
let x=$x+1
これはうまくいくかもしれません:
x = `expr $x + 1`
@Banditの答えは問題ありませんが、「let」と(())が通常のシェル構文に与える違いを強調したいと思います。
let x++
bash(またはksh、または任意のPOSIXシェル)に、式を「算術評価」として処理させます。この場合、参照される変数の前に「$」を付ける必要はありません。 (())を使用する利点の1つは、それ以外の場合、特別なトークンを引用符で囲んだりエスケープしたりする必要がないことです。次のような乗算の「*」:
(( x = x * 2 ))
この構文は、式の出力を使用する$(())よりも少し明確です。
x=$(( x * 2 ))