()丸括弧
- 別プロセスで動く、サブシェルで動く という事らしい
- 別プロセスで動くので、「起動したスクリプト」自体には影響がない
変数が「起動したスクリプト」との物と別物になってたのはこのせいだったのね
number=1
# 変数を書き換えてみる
(
number=2
)
echo $number
結果 -> 1
{} 波括弧
- 変数の展開とコマンドをカレントシェル(実行したシェル)で実行する
変数の展開はいつもやってるこんな感じのです。
number=1
echo "numberにはこの値が入ってます -> ${number}"
そして、これなら変数が「起動したスクリプト」と別物にならないはず。
number=1
# 変数を書き換えてみる
{
number=2
}
echo $number
結果 -> 2
一つ謎が解けました。