ウェブサイト検索

Bashで変数をエクスポートする


Bashの変数は、他のプログラミング言語の変数とはかなり異なります。Bashの変数は宣言を必要とせず、単に変数名を使用して変数のデータを指定します。Bashシェルで定義されたユーザー変数はローカル変数と見なされます。これは、シェルの変数がシェルの子プロセスに渡されないことを意味します。変数は、子プロセスが利用できるようにする前に、ユーザーによってエクスポートされる必要があります。Bashの「Export」コマンドは、指定された変数をシェル内で実行されているすべての子プロセスが使用できる環境にエクスポートするために使用されます。exportコマンドは環境変数とも呼ばれます。

環境変数は、exportコマンドでラベル付けすることによって子シェルにエクスポートできます。exportコマンドは、エクスポートされた変数に対して行われた変更をアクティブなセッションに通知することを可能にします。exportコマンドは2つの引数を取り、最初の引数はexportコマンドの異なるフラグであり、2番目の引数はサブシェルでエクスポートするために設定される変数名です。

例 # 1: Bashにおけるexportコマンドの使用。

ここでは、bashシェルでエクスポートコマンドを単純に使用し、Linuxシステムでエクスポートされた次の環境変数を表示しました。

エクスポート

bashのexportコマンドには、さまざまな機能を提供するいくつかのフラグがあります。次のbashシェルは、フラグ「-p」を使用したexportコマンドで展開されています。「-p」フラグは通常、現在のシェルのすべてのエクスポートされた変数をリストするために使用されます。「export -p」というコマンドをbashシェルに入力すると、すべてのシェルにエクスポートされた名前のリストが次のように返されます:

エクスポート -p

すべての新しいプロセスは、上記の画像に示されているように、システム環境変数に渡されます。また、別のフラグ「-n」を使用して環境変数を取り除くこともできます。「export」コマンドは「-n」フラグを使用してこれらの環境変数を無効にするように設定されています。「export -p」コマンドは「export -n」コマンドによって取り消されたことが出力され、変数は実行中のシェルセッションに制限されます。

エクスポート -n

例2:Bashにおけるエクスポートコマンドを使用して変数をエクスポートすること。

bashシェルにおけるexportコマンドの使用は前述のセクションで説明されています。現在、私たちはexportコマンドを使用してbashシェル変数をエクスポートしています。export変数コマンドは、シェルで実行されるすべてのコマンドがその変数にアクセスできるようにします。ここでは、変数名「Msg」とともにexportコマンドを使用しました。export変数「Msg」は文字列値で初期化されています。その後、私たちは「$Msg」変数を渡されたechoコマンドを使用しました。echoコマンドは、変数「$Msg」に保存されている文字列値を表示しました。

export Msg=" Hello World"
echo Msg

export コマンドを使用して作成された環境変数「Msg」も削除することができます。unset コマンドは、環境変数「Msg」を指定された bash シェルで使用され、内部に保存されている値を削除します。「Msg」変数を echo したところ、unset コマンドによって削除されたため、空の出力が返されました。

unset Msg
echo $Msg

例#3:関数や変数をエクスポートするためのBashでのエクスポートコマンドの使用。

bashシェルのexport変数は、実行中のコマンドで示されています。また、bashシェルのexportコマンドを使用して、bash関数をエクスポートすることもできます。次のシェルでは、まず「func()」という関数名を定義し、echoコマンドを使用して「Bashシェルスクリプト」という文を出力するように設定しました。そして、シェルの次の行で、オプション「-f」とともにexportコマンドを使用しました。「-f」オプションは、exportコマンドにこれは関数であることを通知します。そうでなければ、exportコマンドに「-f」オプションなしで関数を使用すると、その関数は変数と見なされます。コマンド「export -f」は、以下の関数「func()」とともに与えられました。その後、bashコマンドを実行し、次の行に関数「func」の名前が提供され、その中の文が返されました。

func() { echo "Bash shell script";}
export -f func  
bash
func

例 # 4: Bashにおけるエクスポートコマンドの使用、値を持つ変数をエクスポートするためのもの。

エクスポートコマンドは、変数をエクスポートする前に値を割り当てることも可能にします。このコマンドは次のbashシェルで与えられ、まず変数「x」を宣言し、その対に数値「10」を提供します。その後、エクスポートコマンドを使用し、変数「x」を渡しました。そして、現在のシェルで環境変数「x」の値を印刷するために、printenvメソッドを呼び出しました。Linuxのprintenvコマンドは、エクスポート変数「x」の値「10」を返しました。

x=10
export x  
printenv x

例 # 5: 機能を使用してBashでエクスポートコマンドの使用。

現在、エクスポートコマンドから期待される結果を取得するために、別のbashファイルを作成しています。次のbashコマンドでは、最初にエコーキーワードを呼び出し、エクスポートコマンドを二重引用符で囲んでいます。エクスポートコマンドは、環境変数「Str」を設定するために使用され、「Str」変数は、一重引用符で囲まれた文字列「My new statement」で定義されています。その後、右向きの記号「>」を使用し、ファイル名「bashScript.sh」を指定しました。次に、bash「source」コマンドを使用し、ファイル名「bashScript.sh」を取って、サブシェルを生成することなくbashシェルにエクスポート変数をインポートしました。sourceコマンドを実行すると、bashシェルにエクスポート変数「Str」の文字列値が表示され、以下のbashシェル画面に示されています。

echo "export Str='My new statement'" > bashScript.sh
source bashScript.sh

echo $str

結論

bashシェルの組み込みエクスポートコマンドは、環境変数をサブシェルにエクスポートすることを目的としています。エクスポートコマンドのいくつかの例を示しました。さらに、エクスポートコマンドに関連するオプション「-p」、「-n」、「-f」についても説明しました。エクスポートコマンドで設定された変数は、現在のbashシェルのいずれでも再利用され、取得することができます。また、bashスクリプトを通じてアクセスされるエクスポート変数についても言及しました。