概要
シェル変数を子プロセスへ引き継がれる環境変数として公開します。シェル変数と環境変数の違いを理解する要です。
基本構文
export 名前
export 名前=値
export -p詳細解説
exportは、シェル内部で管理している変数にエクスポート属性を付け、以後に起動する子プロセスへ環境変数として渡せるようにするコマンドです。単に変数へ代入しただけでは、同じシェルの中でしか見えません。exportして初めて外部コマンドやシェルスクリプトへ引き継がれます。
この違いはLinux学習で非常に重要です。PATH、HOME、LANG、EDITORのような値は典型的な環境変数で、動作や表示に直接影響します。
このコマンドを使う場面
変数を外部コマンドや子シェルへ引き継ぎたい時に使います。PATH、LANG、EDITOR、PAGER、http_proxyなどを設定する場面が代表例です。
まず安全に試す方法
1. FOO=hello
2. sh -c "echo ${FOO-unset}"
3. export FOO
4. sh -c "echo $FOO"
3分ミッション
少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。
-
export前後で子シェルから見える値が変わることを確認します。
資格試験との関連
-
LinuC レベル1
範囲: 1.03.1 コマンドラインの操作根拠: officialLinuCレベル1では、コマンドライン操作やシェル環境の理解が問われます。exportはその基礎を支える代表的なコマンドです。
-
LPIC-1
範囲: 105.1 シェル環境のカスタマイズと利用根拠: officialLPIC-1では、シェル環境、変数、履歴、コマンド解決の理解が重視されます。exportはその周辺知識と一緒に学ぶ価値が高いコマンドです。
-
共通基礎
範囲: Linuxコマンド基礎根拠: editorial試験横断で、exportはコマンドライン操作、手順読解、トラブルシュートの基礎体力を作る項目です。
実行結果サンプル
-
FOO=hello export FOO sh -c "printf %sn $FOO"hello
戻り値コード
- 0 正常終了しました。
- >0 不正な識別子の指定などでエラーになりました。
使用例
export PATH="$HOME/bin:$PATH"export LANG=Cexport EDITOR=vimexport -p | grep PATH
よくあるエラー
-
変数を設定したのにスクリプト側で見えない 原因: exportしていないため、子プロセスへ引き継がれていません。対処: export 変数名、またはexport 名前=値を使います。
導入・互換性情報
POSIXではexportは特殊組み込みとして定義されます。Bashではdeclare -xでも近い操作ができますが、移植性重視ならexportを使うのが基本です。
- Debian GNU/Linux / 13 / Bash 5.2.37
注意点 / セキュリティリスク
PATHやLD_LIBRARY_PATHのような重要変数を誤って上書きすると、実行ファイル探索やライブラリ探索が壊れることがあります。秘密情報を環境変数へ入れる運用も漏えいリスクに注意が必要です。
FAQ
-
Q. exportとVAR=value commandの違いは何ですか。 A. 前者は現在のシェル状態を更新し、その後の子プロセスにも影響します。後者はその1回のコマンド実行だけに限定されます。
関連用語
参照リンク
- カテゴリー: Shell And Cli
- シェル依存: Posix Sh
- レベル: Basic
- 対応試験: LinuC, LinuC レベル1, LPIC, LPIC-1, 共通基礎