2011-09-07 4 views
119

exportコマンドの使用を理解しようとしています。UNIXエクスポートコマンド

man exportを使ってみましたが、このコマンドのマニュアルはありません。

誰でもUNIXでexportの使用を理解するのを手伝ってもらえますか?

+0

非常に奇妙なことに、マニュアルページはありません。私はどちらも見ない。 – Pinocchio

答えて

177

プログラムを実行すると、子プログラムはその環境変数を親プログラムから継承します。たとえば、$HOMEが親の/rootに設定されている場合、子の$HOME変数も/rootに設定されます。

これは、エクスポート用にマークされた環境変数にのみ適用されます。コマンドラインで変数を

のように設定した場合
$ FOO="bar" 

この変数は子プロセスでは表示されません。ないあなたがそれをエクスポートしない限り:

$ export FOO 

あなたはbashで(はなく、古い学校のSHに)単一のものにこれらの二つの文を組み合わせることができます:

$ export FOO="bar" 

ここでの違いを示す簡単な例です輸出されていない変数。何が起きているのかを知るためには、sh -cが親シェルの環境を継承する子シェルプロセスを作成することが分かっています。

$ FOO=bar 
$ sh -c 'echo $FOO' 

$ export FOO 
$ sh -c 'echo $FOO' 
bar 

注:は組み込みコマンドがhelp exportを使用しているシェルにヘルプを表示するには。シェル組み込み関数は、/bin/lsのような独立した実行可能ファイルではなく、シェルの一部であるコマンドです。

13

のUnix

コマンドのENV、設定、およびprintenvの表示すべての環境変数とその値。 envとsetは環境変数の設定にも使用され、しばしばシェルに直接組み込まれます。 printenvは、その変数名をコマンドの唯一の引数として与えることによって、単一の変数を出力するためにも使用できます。

Unixでは、以下のコマンドも使用できますが、多くの場合、特定のシェルに依存しています。

export VARIABLE=value # for Bourne, bash, and related shells 
setenv VARIABLE value # for csh and related shells 

あなたは

+3

ようこそStackOverflowへ。古典的なBourneシェルには、次のものが必要であることに注意してください: 'VARIABLE = value;一度に割り当ててエクスポートするのではなく、「変数をエクスポートする」。Cシェルの 'set'コマンドは、環境変数ではなくシェル変数用です。 'setenv'は' export'のそれに相当します。 Bourne由来のシェルの 'set'コマンドは、エクスポートされた(環境)変数だけでなくすべての変数を表示します。歴史的には、少なくとも 'env'コマンドはシェル(組み込みではない)から分離されていますが、簡単に組み込み可能です。それは、それを実行するシェルではなく、特定のコマンドの環境を設定します。 –

1

exportthisで見ることができ、環境変数を設定するために使用されます。例:

export EDITOR=pico 

デフォルトのテキストエディタをpicoコマンドに設定します。

2

exportは、bash shellと他のBourne shell variantsの組み込みコマンドです。子プロセスへのエクスポートのためのシェル変数をマークするために使用されます。