以下は、起動ファイルを実行せずにbashシェルのデフォルトの環境変数を示していますか?
$ env -i bash --noprofile --norc
$ export
declare -x OLDPWD
declare -x PWD="/home/t"
declare -x SHLVL="1"
(これにより、set
環境変数でもそうでない場合もあるデフォルトのシェル変数の長いリストが表示されます。)
これら3つの環境変数はいつどのように生成されエクスポートされますか?
bash自体またはbashを起動したときに除外していない暗黙的な起動ファイルを作成した人は誰ですか?
私の質問は以下からインスピレーションを得ました。デフォルトの環境変数は何ですか?
ありがとうございます。
答え1
オープンソースプログラムが何をしているのか疑問に思うときは、ソースコード(文書や実験はもちろん)を見てみましょう。set_auto_export (
検索結果によると、本当に良いリストを見つけたようです。bash変数.cソースコード
$OLDPWD
: http://git.savannah.gnu.org/cgit/bash.git/tree/variables.c#n897$PWD
:http://git.savannah.gnu.org/cgit/bash.git/tree/variables.c#n849$SHLVL
:http://git.savannah.gnu.org/cgit/bash.git/tree/variables.c#n839QNXから
$NODE
:http://git.savannah.gnu.org/cgit/bash.git/tree/variables.c#n483
これらは中ですinitialize_shell_variables()
。次から電話をかける shell_initialize()
shell.cでは、それ自体は次のようになります。次から電話をかける main()
shell.cから
あなたも見つけることができます証拠ある時点で輸出用としてマークされていましたが、$PATH
今は終了しました。$TERM
ifdef'd