この"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
値が返されます。
したがって、エクスポートにより、そのシェル環境内の他の子プロセスで変数を使用できるようになります。