sourceコマンドは、現在のシェルのファイルからコマンドを実行します。また、環境変数を更新するためにも使用できます。正直なところ、sourceコマンドの主な用途は、環境変数を更新することです。
source filename [options]
を使用することもできます。 (ドット)次のようなソースコマンドの代わりに:
. filename [options]
このコマンドの構文は単純ですが、それを理解するには、いくつかのLinuxの概念をもう少し詳しく調べる必要があります。 Linuxやプログラミングを初めて使用する場合は、変数が何であるかについて漠然とした考えしか持っていない可能性があります。
この用語を聞いたが、それが何を意味するのか正確にわからない場合は、それで構いません。私たち全員がまったく同じ場所から始めることを忘れないでください。朝、システム管理者やプログラマーとして突然目を覚ます人は誰もいません。
先に進む前に簡単に説明します。
bashで変数を作成する方法に既に精通している場合は、次のヘッダーにスキップできます。
任意のbashターミナルを開いて、新しい変数を作成できます。変数は、システムが情報(文字、数字、記号)を指すために使用できるプレースホルダーと考えることができます。
例を見てみましょう。 nameという名前の新しい変数を作成し、値Christopherを割り当てます。
bashでは、これは次の式を使用して行われます: variable_name =your_variable 。 =の間にスペースを追加しないでください 記号とテキスト。
[email protected]:~$ name=Christopher
[email protected]:~$ echo $name
Christopher
変数名を入力しただけではどうなりますか?
[email protected]:~$ echo name
name
この記号を忘れた場合、bashは入力したテキストを返します。ここでは、「名前」をエコーまたは印刷するように指示します。 $記号がないと、bashは作成した変数を使用することを認識しません。
変数は、呼び出された場所に挿入されます。だから私はそれを次のような文に含めることもできます:
[email protected]:~$ echo "Hello, $name. $name is a great name. It's good to meet you."
Hello, Christopher. Christopher is a great name. It's good to meet you.
変数を使ってできることはたくさんありますが、これを読んでいる人なら誰でも変数がどのように機能するかを理解できるように、入門書で十分であることを願っています。
ソースコマンドを理解するための次の鍵として、永続性について説明しましょう。これは、シェルと環境コンテンツの違いを考える簡単な方法です。コンテキストによっては、「移植性」の観点から考えることもできます。
簡単に言えば、ターミナルシェルで変数を作成すると、そのシェルを終了するとその変数は失われます。
対照的に、環境変数はオペレーティングシステムに永続性があります。これらの変数は通常、すべて大文字を使用して区別します。
この例は、OSによって$USERとして認識されているユーザー名です。
[email protected]:~$ echo $USER
christopher
さて、あなたは環境変数とシェル変数の違いを調べるのにかなりの時間を費やしました。それはソースと何の関係がありますか ?すべて、本当に。
それ以外の場合は、ソースの実行に違いはありません。 およびbash 。この点を説明するために、もう1つデモを並べます。
Linuxをしばらく使用している場合は、これらのコマンドに遭遇し、同じことをしたと思ったことがあるかもしれません。結局のところ、両方のコマンドを使用してスクリプトを実行できます。
新しいシェルを作成するbashを実行するのとは異なり、ソースは現在のシェルで機能します。新しいウィンドウが表示されないため、これは明らかではありません。
フォローしている場合は、次のような非常に単純なスクリプト(echo.shと呼びます)を作成する必要があります。
#! bin/bash
echo $USER
echo $name
ターミナルで他のことをする前に、変数名に自分の名前を割り当ててください。
[email protected]:~$ name=chris
次に、変数を割り当てたのと同じ端末で3つのコマンドすべてを試してみるとどうなるかを説明します。
[email protected]:~$ bash echo.sh
christopher
[email protected]:~$ source echo.sh
christopher
chris
[email protected]:~$ . echo.sh
christopher
chris
ご覧のとおり、 bash を使用してスクリプトを実行したときに、ローカル変数が認識されませんでした。 。
ソースを使用して、現在のシェルの環境変数を更新することもできます。このタスクの一般的なアプリケーションは、現在のシェルでbashプロファイルを更新することです。
ユーザーは、bashプロファイルを変更して、たとえばエイリアスを作成したい場合があります。通常、構成を保存したら、変更を行うために新しいターミナルウィンドウを開く必要があります。
[email protected]:~$ source .bashrc
これを実行すると、新しいターミナルを開かなくても、現在のシェルの設定が更新されます。
結論
ソースコマンドでこのチュートリアルを楽しんでいただけたでしょうか。いつものように、コメント欄であなたの考えを教えてください。この投稿を楽しんだら、下のボタンを使用してソーシャルメディアで共有してください。