Bashは、エクスポートされた変数とエクスポートされていない変数を区別するようです。
例:
$ FOO=BAR
$ env | grep FOO
$ set | grep FOO
FOO=BAR
set変数を見ますが、見envません。
$ export BAR=FOO
$ env | grep FOO
BAR=FOO
$ set | grep FOO
BAR=FOO
FOO=BAR
set両方の変数が表示envされますが、エクスポートされた変数のみが表示されます。
私はそれsetがbash組み込みであり、そうでenvはないことを知っています。
エクスポートされる変数とエクスポートされない変数の違いは何ですか?
17
用語に関する注意:「環境変数」は常にエクスポートされます。エクスポートされない変数は、「シェル変数」(または「パラメーター」)です。
—
ジル「SO-悪であるのをやめる」