No.004シェル
export
エクスポート・環境変数エクスポート
シェル変数を子プロセスへ引き継がれる環境変数として公開します。シェル変数と環境変数の違いを理解する要です。
答えよく使う形
$ FOO=hello
export FOO
sh -c "printf %sn $FOO"
hello
$ export PATH="$HOME/bin:$PATH"
$ export LANG=C
練習用の部屋です。何を打っても本物は変わりません。本物の Linux で続ける →
覚える順番の中でLPIC-1・41 駅め / 106
どんなコマンド?
変数を外部コマンドや子シェルへ引き継ぎたい時に使います。PATH、LANG、EDITOR、PAGER、http_proxyなどを設定する場面が代表例です。
exportは、シェル内部で管理している変数にエクスポート属性を付け、以後に起動する子プロセスへ環境変数として渡せるようにするコマンドです。単に変数へ代入しただけでは、同じシェルの中でしか見えません。exportして初めて外部コマンドやシェルスクリプトへ引き継がれます。
この違いはLinux学習で非常に重要です。PATH、HOME、LANG、EDITORのような値は典型的な環境変数で、動作や表示に直接影響します。
書き方とオプション
組み立ててみるオプションを押すと、下の1行に足されます。もう一度押すと外れます。
$ export
使用例と実行結果
行を押すとコピーできます。
hello
まず安全に試す
3分ミッション
手を動かすと覚えやすくなります。できたものに印を付けてください(この端末に残ります)。
0 / 1
つまずいたとき
変数を設定したのにスクリプト側で見えない
原因exportしていないため、子プロセスへ引き継がれていません。
こうするexport 変数名、またはexport 名前=値を使います。
終わったときの数(戻り値)
$ echo $?
- 0正常終了しました。
- >0不正な識別子の指定などでエラーになりました。
気をつけることと入れ方
PATHやLD_LIBRARY_PATHのような重要変数を誤って上書きすると、実行ファイル探索やライブラリ探索が壊れることがあります。秘密情報を環境変数へ入れる運用も漏えいリスクに注意が必要です。
シェル(bash など)に組み込まれたコマンドです。入れるものはありません。
環境による違い
POSIXではexportは特殊組み込みとして定義されます。Bashではdeclare -xでも近い操作ができますが、移植性重視ならexportを使うのが基本です。
確かめた環境Debian GNU/Linux / 13 / Bash 5.2.372026-04-09 に確認
よくある質問
exportとVAR=value commandの違いは何ですか。
前者は現在のシェル状態を更新し、その後の子プロセスにも影響します。後者はその1回のコマンド実行だけに限定されます。
資格試験では
- LinuC レベル1大事1.03.1 コマンドラインの操作
- LPIC-1大事105.1 シェル環境のカスタマイズと利用
- 共通基礎大事Linuxコマンド基礎
export を最後まで読みました。
Linux コマンド辞典に戻る29 / 144