
ソース
commandは、現在のシェル環境で引数として指定されたファイルからコマンドを読み取って実行します。関数、変数、構成ファイルをシェルスクリプトにロードすると便利です。
ソースコード> は、Bashに組み込まれているシェル、およびLinuxおよびUNIXオペレーティングシステムで使用されるその他の一般的なシェルです。その動作はシェルごとにわずかに異なる場合があります。
ソースコマンド構文#
source
の構文 コマンドは次のとおりです:
source FILENAME [ARGUMENTS]
. FILENAME [ARGUMENTS]
ソース
および。
(ピリオド)は同じコマンドです。-
FILENAME
の場合 がファイルへのフルパスではない場合、コマンドは$ PATH
で指定されたディレクトリでファイルを検索します 環境変数。ファイルが$PATH
に見つからない場合 、コマンドは現在のディレクトリでファイルを検索します。 引数
がある場合 与えられると、それらはFILENAME
の位置パラメータになります 。-
FILENAME
の場合 存在する場合、source
コマンド終了コードは0
それ以外の場合、ファイルが見つからない場合は、1
が返されます。 。
ソースコマンドの例#
このセクションでは、 source
の使用方法の基本的な例をいくつか見ていきます。 コマンド。
ソーシング関数#
同じ関数を使用するシェルスクリプトがある場合は、それらを別のファイルに抽出してから、そのファイルをスクリプトで取得できます。
この例では、スクリプトを実行しているユーザーがルートであるかどうかをチェックするbash関数を含むファイルを作成します。ルートでない場合は、メッセージを表示してスクリプトを終了します。
Functions.shcheck_root () {
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root"
exit 1
fi
}
これで、rootユーザーのみが実行する必要のある各スクリプトで、 Functions.sh
を取得するだけです。 ファイルを作成して関数を呼び出します:
#!/usr/bin/env bash
source functions.sh
check_root
echo "I am root"
上記のスクリプトをroot以外のユーザーとして実行すると、「このスクリプトはrootとして実行する必要があります」と出力され、終了します。
このアプローチの利点は、スクリプトが小さくて読みやすくなり、必要なときにいつでも同じ関数ファイルを再利用できることです。関数を変更する必要がある場合は、1つのファイルのみを編集します。
Bash構成ファイル#
source
を使用 コマンドを使用すると、ファイルから変数を読み取ることもできます。変数は、Bash構文 VARIABLE =VALUE
を使用して設定する必要があります 。
テスト構成ファイルを作成しましょう:
config.shVAR1="foo"
VAR2="bar"
bashスクリプトでは、 source
を使用します 構成ファイルを読み取るコマンド:
#!/usr/bin/env bash
source config.sh
echo "VAR1 is $VAR1"
echo "VAR2 is $VAR2"
スクリプトを実行すると、出力は次のようになります。
VAR1 is foo
VAR2 is bar
結論#
このガイドでは、 source
の使用方法を学びました。 シェルスクリプトに組み込まれているコマンド。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。