ソースコマンド は、現在のシェルセッション内のファイルからコマンドを読み取って実行するために使用される組み込みのシェルコマンドです。 sourceコマンドは通常、現在のシェルの環境変数を保持/変更するために使用されます。つまり、スクリプトを調達すると、現在のシェルで実行コマンドが実行されます。 。
sourceコマンドは次の場合に役立ちます:
- 現在のシェル環境を更新する
- 現在の環境のコンテキストでシェルスクリプトを実行するには
- スクリプトにシェル関数をインポートするには
- シェルスクリプトから変数を読み取る
ソースコマンドの構文
この組み込みシェルコマンドの構文は、人間が読める形式です。ファイルを受け取り、引数が指定されている場合、それらは渡されるスクリプトの位置パラメーターとして機能します。
source FILENAME [ARGUMENTS]
。 (ドット)は、ソースコマンドの代わりに使用することもできます。
. FILENAME [ARGUMENTS]
ソースコマンドの使用方法
ここでは、ソースコマンドを適用できるいくつかの実用的な例を説明します。
1。現在のシェル環境を更新します
ユーザーとして、現在のシェル環境でエイリアスを定義できます。 ls -l
の1つを定義するには タイプ:
alias ll = 'ls -l'
使用するには、次のように入力します:
ll
上記は現在のディレクトリ内のファイルを長い形式でリストしていますが、現在のシェルセッションでのみ機能します。永続的に変更を加えるには、〜/ .bashrcファイルを開いて、次を追加します。
alias ll = 'ls -l'
現在のシェルを更新するには 環境タイプ:
source ~/.bashrc
2。現在のシェル環境のコンテキストでシェルスクリプトを実行します
シェルスクリプトは、現在のシェル環境でユーザーとして定義した変数を認識しません。 sourceコマンドを使用して、現在のセッションのコンテキストでシェルスクリプトを実行できます。
一時変数タイプを定義するには:
WEBSITE = example.com
カスタムスクリプトタイプを作成するには:
#!/bin/bash echo $WEBSITE
ファイルを保存します。現在のシェルセッションタイプのコンテキストで実行するには:
source ./myscript.sh
出力を以下に示します。
example.com
3。シェル関数をインポートする
カスタムシェルスクリプトタイプを定義するには:
!#/bin/bash foo() { echo "test" }
上記をscript.shとして保存します。
関数をインポートするには 現在のシェルセッションで上記のスクリプトの次のように入力します:
source script.sh
foo
を使用するには 関数型:
foo
出力を以下に示します。
test
4。シェルスクリプトから変数を読み取る
いくつかの変数を使用してシェルスクリプトを作成するには、次のように入力します。
#!/bin/bash a=1 b=2 c=3
別のシェルスクリプトタイプ内の変数を読み取るには:
#!/bin/bash source abovescript.sh echo $a, $b, $c
出力は次のようになります:
1, 2, 3
5。コマンドを読んで実行する
ソースコマンドは、ファイルからコマンドを読み取って実行できます。コマンドのセットを含むテキストファイルを作成しましょう。
たとえば、ファイルcommands.txtには次の内容が含まれています。
pwd
date
ソース<ファイル名>の出力:
$ source firstexample.txt /home/developer Fri Feb 25 11:10:11:09 GMT 2021
6。関数に引数を渡す
このセクションでは、パラメータを関数に渡す方法と、sourceコマンドを介して再利用できる同じ関数について説明します。
Functions.sh!/usr /bin/bash var1=$1 var2=$2execute.sh
!/usr/bin/bash source functions.sh 10 AA echo “var1 = $var1” echo “var2 = $var2”Output.sh
var1 = 10 var2 = AA
結論
ソースコマンドは現在のシェルでスクリプトを評価しましたが、execコマンドは新しいシェルで実行されます。
この記事を通じて、ソースコマンドの4つの実用的な例を学びました。それらはすべて便利ですが、ユーザーとして最も重要なのは最初のものです。