GNU/Linux >> Linux の 問題 >  >> Linux

Bashエクスポート変数

はじめに

シェル変数は、シェルの重要な構成データを格納するために使用されるキーと値のペアです。変数がデータの一部への単なるポインターであるとすると、名前、数値、ファイル名、さらには別の変数など、任意のデータ型への参照を含めることができます。

ユーザーが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

変数は再び現在のシェルセッションに制限されます。


Linux
  1. エクスポートありまたはエクスポートなしの変数の定義

  2. bash の変数を持つエイリアス

  3. bash エクスポート コマンド

  1. grep を bash の変数に渡す

  2. Linuxで変数を永続的にエクスポートする方法は?

  3. bash - 大文字と小文字を区別しない変数のマッチング

  1. Bashスクリプト(I)

  2. Bash動的(変数)変数名?

  3. Bashで合法的なコマンドの前に変数を設定するのはなぜですか?