私が例えばを入力するとき。 .bashrc
ファイルへの新しいエイリアスすぐにそのターミナルウィンドウで使用することはできません。最近まで、.bashrc
ファイルをリロードするためにターミナルを再起動する必要があると思っていました。それから私はどこかで私が書くならそれを見つけました
. .bashrc
これにより、現在のウィンドウで.bashrc
ファイルが再ロードされ、再起動する必要はありません。これはひれで動作しますが、実際に何が起こっているのでしょうか?なぜこれが.bashrc
ファイルをリロードするのですか?
.
はコマンドだからです。
これはシェルの組み込みコマンドであり、指定されたファイルを読み取り、現在のシェルプロセスでその中のコマンドを実行します。
Bourne Again Shellには、このコマンドの同義語としてsource
もあります。しかし、これはBashismです(Bourne Again ShellがC Shellから取得したもの)。 Bourne AgainShellがTENEXC Shell、Z Shellなどと共有しているのはBashismですが(Korn Shellは共有していません)。 Single UNIX Specificationは、.
のみを標準化します。
また、.
/source
の動作は、Bourne AgainShellがPOSIX互換モードで実行されているかどうかによって微妙に変化することにも注意してください。 (これも他のシェルと似ていますが、非標準の動作は互いに同じではありません。たとえば、Zシェルには、コンパイル済みのシェルスクリプトメカニズムがあり、source
は.
とは微妙に異なります。その検索パス処理。別の例として、Korn Shellの.
はシェル関数を実行します。)
~/.bashrc
は、シェルの起動時に内容が(シェルプロセスの呼び出し方法に応じて)自動的に供給されるいくつかのファイルの1つにすぎません。それが手動で供給されることを禁止するものは何もありません。そのアクションがべき等でない場合でも、後で修正作業を行う必要がある場合があります。
.
コマンドは、.bashrc
ファイルを実行するsource
コマンドと同じです。これにより、定義したすべてのエイリアスとその他のシェル設定/変数が現在の環境に追加されます。 source
のヘルプページから:
source: source filename [arguments]
Execute commands from a file in the current Shell.
help .
はあなたに言うでしょう:
.: . filename [arguments]
Execute commands from a file in the current Shell. Read and execute commands from FILENAME in the current Shell. The entries in $PATH are used to find the directory containing FILENAME. If any ARGUMENTS are supplied, they become the positional parameters when FILENAME is executed. Exit Status: Returns the status of the last command executed in FILENAME; fails if FILENAME cannot be read.
と言って. .bashrc
ファイルを実行(ソース)します.bashrc
これにより、ファイルに加えられた変更が現在のセッションで使用可能になります。
デフォルトでは、~/.bashrc
はログイン時に読み取られます。
.
はsource
の同義語です。