GNU/Linux >> Linux の 問題 >  >> Linux

エクスポートがある場合とない場合のBash変数の定義の違い

この"exportHISTCONTROL =ignoredups"を追加しました ~/.bashrcの行 Bash履歴の重複エントリを回避するファイル 私のLinuxデスクトップで。 HISTCONTROLのプレフィックスを付けていることに気づきましたか "export"の変数 ?知っていますか-"export"とは のオプション? bash変数を定義することの違いは何ですか? エクスポートオプションの有無にかかわらず、読み進めてください!

エクスポートがある場合とない場合のBash変数の定義の違い

exportで変数を定義します すべてのサブプロセス(または子プロセス)で使用できるようにします。意味-変数をexportで定義する場合 以下のように

export variable_name=value

この変数は、すべてのサブプロセスで使用できます。 そのシェルプロセスから実行します。

exportなしで変数を定義する場合 以下のように

variable_name=value

変数はシェルに限定されており、他のサブプロセスでは使用できません。一時変数やループ変数に使用できます。

例を示して、理解を深めてください。

"ostechnix"という名前の変数を定義しましょう "export"なし 以下のように:

$ ostechnix="Welcome to ostechnix.com blog!"

次に、「echo」コマンドを使用して値を表示します。

$ echo $ostechnix

ostechnix変数の値が表示されます:

Welcome to ostechnix.com blog!

次に、次のコマンドを実行して、新しいBashシェルセッションを開始します。

$ bash

次に、echoを使用してostechnix変数の値を表示してみます コマンド:

$ echo $ostechnix

見る?何も返されません!空白の出力のみが表示されます。したがって、exportなしで変数を定義すると証明されます 、子プロセスでは使用できません。

exportで同じ変数をもう一度定義しましょう オプション:

$ export ostechnix="Welcome to ostechnix.com blog!"

変数の値を表示します:

$ echo $ostechnix

出力例:

Welcome to ostechnix.com blog!

新しいシェルセッションを開始します:

$ bash

もう一度変数の値を表示してみてください:

$ echo $ostechnix

値が返されます。

したがって、エクスポートにより、そのシェル環境内の他の子プロセスで変数を使用できるようになります。


Linux
  1. [[$ a ==Z*]]と[$a==Z *]の違いは?

  2. エクスポートされたシェル変数とBashにないシェル変数の違いは?

  3. EotとEofの違いは?

  1. [0-9]、[[:digit:]]とDの違いは?

  2. SnatとMasqueradeの違いは?

  3. エクスポートありまたはエクスポートなしの変数の定義

  1. bash の変数を持つエイリアス

  2. #!/usr/bin/env bash と #!/usr/bin/bash の違いは何ですか?

  3. Bash の ${} と $() の違い