(x = 100)と{ x = 100;}の違いは何ですか?

(x = 100)と{ x = 100;}の違いは何ですか?

誰かが次の文を説明できますか?

$x=50

$ (x=100) # このコードはサブシェルでのみ実行されます。サブシェルの実行が完了すると、x値は元の値50に戻ります。

$エコ$x

米ドル50ドル


$x=50

${x=100; #ここで、x値は完全に変更され、xの現在のシェル値に影響を与え、50から100に変更されます。

$エコ$x

100ドル


どのようにこれが起こるのか、誰が説明できますか?

ベストアンサー1

~から男乱交:

(リスト) listはサブシェル環境で実行されます(以下のコマンド実行環境を参照)。 シェル環境に影響を与える変数割り当ておよび組み込みコマンドは、コマンドの完了後に無効になります。

別の環境で呼び出されるコマンドは、シェルの実行環境に影響を与えることはできません。

{リスト; }listは現在のシェル環境でのみ実行されます。

おすすめ記事