Bashエクスポートコマンド
「Bashシェルは、シェル内の変数をエクスポートしてそれらをグローバルにするための組み込みコマンドであるexportコマンドを提供します。これにより、別のシェルからそれらにアクセスすることができます。exportコマンドを使用すると、既存の環境変数に影響を与えることなく、環境変数を他のシェルに子プロセスとしてエクスポートします。このガイドでは、Bashのexportコマンドについて説明し、それを使用する方法の例を示します。」
Bashのエクスポートコマンドの理解
エクスポートコマンドには3つのオプションしかありません。
- -n: 名前付き変数がエクスポートされないことを示すために使用されます
- -p: すべてのエクスポートされた変数と関数をリストアップするために使用されます。
- -f: 関数をエクスポートする際に使用されます
エクスポートコマンドが役に立つときと場所を理解するための例を挙げましょう。現在のシェルでdemo1という名前のローカル変数を作成すると仮定します。
変数の値にアクセスしたい場合は、echo コマンドを使用できます。
echo $demo1
しかし、bashコマンドを使用して別のシェルを開き、他のシェルで宣言された変数の値を取得しようとした場合、出力は何も得られませんでした。
これは、私たちが作成した変数が指定されたシェルにローカルであるために発生します。これをグローバルにしたい場合は、それをエクスポートする必要があります。以前のシェルに戻り、以下のコマンドを使用して変数をエクスポートしましょう。
exit
export demo1新しいシェルに移動して変数をエコーすると、値が得られることがわかります。つまり、変数にアクセスできるということです。
それはすべて、エクスポートコマンドを使用してエクスポートしたから可能です。
エクスポートされた変数の表示
引数なしでエクスポートコマンドを実行すると、シェルに関係なく、システム内のすべてのエクスポートされた変数がリストされます。
しかし、-pオプションを追加すると、現在のシェルでエクスポートされた変数のみがリストされます。
リストの下部にエクスポートした変数があることに注意してください。
関数のエクスポート
変数を超えて、export コマンドを使って関数をエクスポートすることもできます。シェルが関数をエクスポートしていることを認識するようにするには、-f フラグを使用してください。
関数を作成し、現在のシェルでエクスポートしてから、別のシェルでそれにアクセスしてみて、それが機能するか見てみましょう。
作成した関数を使用して、新しいシェルでは利用できないことを確認できます。以下のように、エラーを返します。
それでは、戻って-f フラグを使用してエクスポートしてください。
最後に、新しいシェルを開いて、私たちの関数が現在グローバルであることを確認します。
ビンゴ!関数をエクスポートすることができました。
値の設定
変数の値を設定するには、export コマンドを使用します。これには、以下の構文が必要です。
export name[=value]例えば、私たちが作成した変数の値を変更したい場合は、以下のコマンドを使用できます。
更新されたら、変数をエコーして新しい値が反映されているか確認してください。
それによって、デフォルトのエディタを設定するなど、他の環境変数を操作することができます。現在設定されているエディタをgrepして、新しいものを設定するだけです。
以下のコマンドを使って現在のデフォルトエディタを確認しましょう。
export | grep EDITORこの場合、現在設定されたデフォルトのエディタはありません。以下のコマンドを使用してvimまたはnanoのようなものを設定しましょう。
export EDITOR=/usr/bin/nano再確認すると、変数の値が変更されたことがわかります。
結論
この記事では、bashのexportコマンドを理解し、それをどのように使用するかに焦点を当てました。変数や関数をエクスポートするためのexportコマンドオプションの使用例をいくつか示しました。bashスクリプトで作業するときにexportコマンドの使い方を知っておくと便利です。ですので、ここで止まらず、練習を続けてください!















