1. ホーム
  2. linux

[解決済み] Bash: let文と代入の比較

2022-03-10 13:03:22

質問

のように変数に代入するのと何が違うのでしょうか? var=foo のようにletを使用するのと let var=foo ? または以下のようなケース var=${var}barlet var+=bar ? それぞれの方法の利点と欠点は何ですか?

どのように解決するのか?

let は、まさに (( )) は、算術式用です。そこには ほとんど差がない との間に let(( )) .

あなたの例は無効です。 var=${var}bar は単語を追加することになります barvar 変数(文字列操作である)を使用します。 let var+=bar は、算術式ではないので、うまくいきません。

$ var='5'; let var+=bar; echo "$var"
5

実は、変数だけなら算術式なのです。 bar が設定され、それ以外の場合は bar はゼロとして扱われる。

$ var='5'; bar=2; let var+=bar; echo "$var"
7