[解決済み] シェルプログラミングで「export」は何をするのですか?重複
2022-07-15 17:18:45
質問
私の知る限り、変数の代入は "export" が前に付いていても付いていなくても同じです。何のためにあるのでしょうか?
どのように解決するのですか?
エクスポートされた変数、例えば
$HOME
と
$PATH
は、それらをエクスポートしたシェルが実行する他のプログラム (およびそれらの他のプログラムが実行するプログラムなど) が環境変数として利用できる (継承される) ようになります。 通常の(エクスポートされない)変数は、他のプログラムから利用できません。
$ env | grep '^variable='
$ # No environment variable called variable
$ variable=Hello # Create local (non-exported) variable with value
$ env | grep '^variable='
$ # Still no environment variable called variable
$ export variable # Mark variable for export to child processes
$ env | grep '^variable='
variable=Hello
$
$ export other_variable=Goodbye # create and initialize exported variable
$ env | grep '^other_variable='
other_variable=Goodbye
$
詳しくは
export
ビルトイン
については GNU Bash マニュアルに、また
コマンド実行環境
と
環境
.
エクスポートされない変数は
( ... )
などで実行されるサブシェルはメインシェルの直接のクローンであるため、エクスポートされない変数も利用可能であることに注意してください。
$ othervar=present
$ (echo $othervar; echo $variable; variable=elephant; echo $variable)
present
Hello
elephant
$ echo $variable
Hello
$
サブシェルは、エクスポートされているかどうかにかかわらず、任意の変数のそれ自身のコピーを変更でき、それが実行されるプロセスによって見られる値に影響を与える可能性がありますが、サブシェルの変更は、もちろん、親シェル内の変数に影響を与えることはできません。
サブシェルに関するいくつかの情報は、以下のページにあります。 コマンドグループ化 と コマンド実行環境 をBashのマニュアルに追加しました。
関連
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] シェルで、「2>&1」はどういう意味ですか?
-
[解決済み] Bashで文字列をデリミターで分割するには?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] Bashで変数が設定されているかどうかを確認する方法は?
-
[解決済み] Bashで変数で定義された数値の範囲を反復処理するにはどうすればよいですか?
-
[解決済み] あるディレクトリにあるすべてのコード行を再帰的にカウントするにはどうすればよいですか?
-
[解決済み】Bashでファイル名と拡張子を抽出する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] エクスポートあり/なしの変数の定義
-
[解決済み] IFS=$' \n' の正確な意味は何ですか?
-
[解決済み] bash に次の行に進むように指示する方法
-
[解決済み] 指定した名前のDockerコンテナが存在しない場合のみ、Bashコマンドを実行するにはどうすればよいですか?
-
[解決済み] bash で "set -o nounset" を使用したときに変数が設定されているかどうかをテストする。
-
[解決済み] Bashはどのように異なるディレクトリコンテキストでコマンドを実行できますか?
-
[解決済み] bashで端末の最終行を削除して置換するには?
-
[解決済み] Bashでディレクトリではなく、ファイルだけをリストアップする方法は?
-
[解決済み] homebrew パッケージがインストールされているかどうかを検出する
-
[解決済み] MSYSでフォルダを閲覧する