web-dev-qa-db-ja.com

printenvで変数が$ PS1のようにならないのはなぜですか?

printenvは環境変数を表示することがわかりますが、シェルプロンプトをカスタマイズするためにPS1などの他の変数が表示されないのはなぜですか?

正確にprintenv出力とは何ですか。なぜPS1を取得しないのですか? printenv以上のことを行う、より包括的な出力コマンドはありますか?

6
AJJ

PS1は通常エクスポートされないためです。

環境変数は、子プロセスの実行環境を設定するために使用されます。 PS1はインタラクティブシェル内でのみ重要であるため、通常、エクスポートするポイントはありません-それは単なるプレーンシェル変数です。

インタラクティブな子Shellを起動すると、PS1などのシェルのリソースファイルから~/.bashrcを読み取り、設定します

export PS1の場合、printenv出力に表示されます。代わりに、ここで説明するように、bashビルトインsetを使用してプレーンシェル変数を表示できます すべての変数名とその現在の値をリストする方法?

6
steeldriver