![いつ変数をエクスポートする必要がありますか? [コピー]](https://linux33.com/image/63367/%E3%81%84%E3%81%A4%E5%A4%89%E6%95%B0%E3%82%92%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
ずっと前、私は最初にbashで変数の割り当てを始めたとき、次のようになりました。
export EDITOR=nano
export PS1=something
...そして好きなものもあります。輸出習慣はいつも私を悩ませています。
しかし、今年を取ってより賢くなれば、これは必要ではないことがわかっているので、私の質問はいつ必要なのでしょうか。いつではないか?私は.bashrc
私が書いたすべてのスクリプトがPerlで行われているので、単純な操作以外に変数の割り当てをほとんど行いません。
答え1
この質問に完全かつ正確に答えることは困難です。アイデアは、名前と値のペア(たとえば)をエクスポートシェルの子プロセスによって継承された情報にexport
入れることです。EDITOR=nano
通常、次の設定をエクスポートしたい場合::は、テキストエディタ、メールプログラム、データベースインタフェース、および他の多くのプログラムのデフォルト設定を指定するため、良い例.bashrc
ですEDITOR
。テキストエディタを使用して、これらのプログラムのいずれかが実行されたときにどのプログラムが実行されるかを決定します。あなたはテキストを編集したいです。私はEDITOR=vi
それを直接使用します。他の一般的な例には、およびが.bashrc
あります。私は環境セクションを読んで読んでこれを得ました。ORACLE_HOME
PATH
VISUAL
TERM
SHELL
man more
これは「一般的なケース」について書いているので、それに加えて環境値が多く、多様で、特定のサブシステムによって異なることに注意してEDITOR
くださいVISUAL
。悪名高いOracleデータベースシステムを使用するには、多くの追加の環境値が必要であり、その多くは迷信的です。シェルの環境は名前と値のペアのセットであるため、個々のシステムはさまざまな方法で環境を使用できます。 Apache Webサーバーは、CGI-BIN
環境内のプログラムに多くの値を渡します。
私のアドバイスは、できるだけ少ない数の変数をエクスポートすることです。一部のプログラムがいつシークレット環境変数の値を使用するかを決定できなかったため、対話型環境を汚染しないでください。環境変数を設定する以外に、何もしない小さなシェルスクリプトを作成し、その変数が必要なプログラムを実行します。
インタラクティブ環境に多くの環境変数を設定した場合は、cron
何かを実行しようとすると驚きます。crond
環境が正しく設定されず、その理由がわからなくなります。