GNU/Linux >> Linux の 問題 >  >> Linux

Bashソースコマンド

ソース commandは、現在のシェル環境で引数として指定されたファイルからコマンドを読み取って実行します。関数、変数、構成ファイルをシェルスクリプトにロードすると便利です。

ソース は、Bashに組み込まれているシェル、およびLinuxおよびUNIXオペレーティングシステムで使用されるその他の一般的なシェルです。その動作はシェルごとにわずかに異なる場合があります。

ソースコマンド構文#

sourceの構文 コマンドは次のとおりです:

source FILENAME [ARGUMENTS]
. FILENAME [ARGUMENTS]
  • ソース および (ピリオド)は同じコマンドです。
  • FILENAMEの場合 がファイルへのフルパスではない場合、コマンドは $ PATHで指定されたディレクトリでファイルを検索します 環境変数。ファイルが$PATHに見つからない場合 、コマンドは現在のディレクトリでファイルを検索します。
  • 引数がある場合 与えられると、それらは FILENAMEの位置パラメータになります 。
  • FILENAMEの場合 存在する場合、 source コマンド終了コードは0 それ以外の場合、ファイルが見つからない場合は、 1が返されます。 。

ソースコマンドの例#

このセクションでは、 sourceの使用方法の基本的な例をいくつか見ていきます。 コマンド。

ソーシング関数#

同じ関数を使用するシェルスクリプトがある場合は、それらを別のファイルに抽出してから、そのファイルをスクリプトで取得できます。

この例では、スクリプトを実行しているユーザーがルートであるかどうかをチェックするbash関数を含むファイルを作成します。ルートでない場合は、メッセージを表示してスクリプトを終了します。

Functions.sh
check_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.sh
VAR1="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の使用方法を学びました。 シェルスクリプトに組み込まれているコマンド。

ご質問やご意見がございましたら、お気軽にコメントをお寄せください。


Linux
  1. BashスクリプトでのLinuxBasenameコマンドの使用

  2. bash エクスポート コマンド

  3. conda source activate :bash:activate:No such file or directory

  1. Bashトラップコマンドの説明

  2. Bash待機コマンド

  3. Bash読み取りコマンド

  1. Bash:ファイルに書き込む

  2. Linuxテールコマンド

  3. Linuxタッチコマンド