はじめに
シェル変数は、シェルの重要な構成データを格納するために使用されるキーと値のペアです。変数がデータの一部への単なるポインターであるとすると、名前、数値、ファイル名、さらには別の変数など、任意のデータ型への参照を含めることができます。
ユーザーがbashシェル内で定義するすべての変数は、デフォルトでローカルです。これは、シェルの子プロセスがシェルの変数を継承しないことを意味します。ユーザーは変数をエクスポートして、子プロセスで使用できるようにする必要があります。
このチュートリアルでは、export
を使用してLinuxでBash変数をエクスポートする方法を説明します。 指図。
前提条件
- 端末/コマンドラインへのアクセス。
- bashシェル。
Bashのexportコマンドは何をしますか?
Bashの変数は、declareコマンドを使用するか、シェルにキーと値のペアを入力するだけで作成されます。たとえば、 test
という名前の変数を作成するには 、 example
の文字列値があります 、タイプ:
test="example"
変数の値を確認するには、echoコマンドを使用します。
echo $test
値が出力に表示されます:
ただし、この方法で作成された変数は、現在のシェルセッションにのみ適用されます。これをテストするには、次のように入力して子シェルを開きます。
bash
echo
を使用する 変数をチェックします。
echo $test
変数test
のため、出力は空です。 親シェルにのみ値があります。子プロセスで使用するには、変数をエクスポートする必要があります。
変数のエクスポートは、Bashスクリプトにとっても重要です。次の例では、 test-script.sh
という名前のスクリプトを作成します test
の値を表示します 変数。
1. nanoなどのテキストエディタを使用してファイルを作成します:
nano test-script.sh
2.ファイルに次のように入力します。
#!/bin/bash
echo $test
3.ファイルを保存して終了します。
4.ファイルのアクセス許可を変更して、実行できるようにします。
chmod u+x test-script.sh
5.スクリプトを実行します:
./test-script.sh
スクリプトは空の出力を返します。
スクリプトは、スクリプトの実行時に自動的に開かれる子シェルで実行されるため、出力は空です。
Bash変数をエクスポートする方法
export
の構文 コマンドは簡単です:
export [variable-name]
以下の例は、test
が bash
を使用した後でも変数が存在します 新しいシェルセッションを開始します。
スクリプトは変数にもアクセスできるようになりました。以前に作成したスクリプトを再度実行します。
./test-script.sh
test
の値を正しく出力するようになりました 。
関数のエクスポート
export
を使用します bash関数をエクスポートするコマンド。
1.たとえば、 echoVar
というbash関数を作成します :
function echoVar
2.関数はecho
を呼び出します test
の値を表示します 変数:
{
echo "The value of the test variable is: "$test
}
3.これで、関数をその名前で呼び出して、変数の値を表示できます。この関数を子プロセスで使用できるようにするには、次のように入力します。
export -f echoVar
この関数は子シェルで使用できるようになりました。
エクスポートされたすべての変数の表示
export
の場合 コマンドは引数なしで発行され、すべての変数のリストが表示されます。リストされているすべての変数を子プロセスにエクスポートするには、 -p
を使用します オプション。
export -p
この記事で作成された2つの変数は、出力の下部にあります。
export -p
の効果を元に戻すには 、 -n
を使用します オプション。
export -n
変数は再び現在のシェルセッションに制限されます。