Menu
Coddy logo textTech

変数のexport

CoddyのTerminalジャーニー「基礎」セクションの一部 — レッスン 63/82。

MY_NAME="Alice" のように変数を設定した場合、その変数は現在のシェル内にのみ存在します。スクリプトを実行したり別のプログラムを起動したりしても、その変数からは利用できません。ここで export の出番となります。

export コマンドは、環境変数をすべての子プロセスで利用できるようにします。つまり、現在のシェルから起動されたプログラムやスクリプトがその変数にアクセスできるようになります。

export MY_NAME="Alice"

既存の変数をエクスポートすることもできます:

MY_NAME="Alice"
export MY_NAME

どちらのアプローチでも同じ結果が得られます。変数はこの後に実行するすべてのコマンドに渡される環境の一部になります。

違いを確認するために、$MY_NAME を使用しようとするスクリプトを実行してみてください。

export がないと、スクリプトには何も見えません。export を付けると、スクリプトは値にアクセスできるようになります。

これが、PATHHOME のようなシステム変数があらかじめエクスポートされている理由です。これらは実行するすべてのプログラムで利用できる必要があります。

変数が出力されているかどうかは、env の出力に表示されるか確認することで検証できます:

env | grep MY_NAME

エクスポートされた変数も、ターミナルを閉じると消失します。次のレッスンでは、セッション間で変数を永続化する方法について説明します。

challenge icon

チャレンジ

簡単

terminal-course を持つ PROJECT という環境変数をエクスポート(export)し、env の出力をフィルタリングして新しい変数のみを表示することで、エクスポートされたことを確認してください。

export を使用して変数の設定とエクスポートを一度に行い、envgrep にパイプで渡すことで、これを1行で実行できます。

出力は次のようになる必要があります:

PROJECT=terminal-course

ヒント: 最初に export PROJECT="terminal-course" を実行し、次に env | grep PROJECT を使用して環境変数に表示されることを確認します。

自分で試してみよう

ターミナル
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン