質問: linuxシェルで変数を設定するときのset、env、declare、exportの違いは何ですか? setなどのlinuxシェルで変数を設定するときのenv、declare、exportとbashの違いは何ですか?
回答: まず、environment variablesとshell variablesは同じものではないことを理解する必要があります。次に、シェルには属性があり、それがどのように機能するかを制御していることを知っておく必要があります。これらの属性は、環境変数でもシェル変数でもありません。それでは、あなたの質問に答えましょう。 env:オプションなしで、現在の環境変数とその値を表示します。ただし、-iフラグを使用して単一のコマンドの環境変数を設定するために使用できます。 set:オプションなしで、それぞれの名前と値シェル変数が表示されます*〜rhelでman setを実行すると、 shell属性の設定にも使用できます。このコマンドdoes not setenvironmentまたはshell variable。 declare:オプションなし、envと同じ; シェル変数の設定にも使用できます export:作成シェル変数環境変数 要するに: setはシェルも環境変数も設定しません envは単一のコマンドに環境変数を設定できます declareはシェル変数を設定します exportはシェル変数を環境変数にします [〜#〜] note [〜#〜] declare -x var=valは、シェル変数を作成し、それをエクスポートして、環境変数にします。