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-悪であるのをやめる」