はじめに
Linuxシステムでは、source
は、現在のシェルのファイルコンテンツを読み取って実行する組み込みのシェルコマンドです。これらのファイルには通常、読み取って実行するためにTCLインタープリターに配信されるコマンドのリストが含まれています。
このチュートリアルでは、ソースコマンドの仕組みと使用時期について説明します。
前提条件
- Linuxディストリビューションを実行しているシステム(Ubuntu 20.04のインストール方法、CentOS 7のインストール方法、またはArch Linuxのインストール方法を学ぶ)
- sudo権限を持つアカウント
- ターミナルウィンドウ/コマンドラインへのアクセス
ソースコマンド構文
ソース コマンドは次の構文を使用します:
source [filename] [arguments]
場所:
-
[filename]
:ソースコマンドで実行するファイルの名前またはパス。 -
[arguments]
:指定した引数は、ファイルの実行時に位置パラメータになります。
source
の代わりにドット(ピリオド)文字を使用できます コマンドを実行すると、同じ出力になります:
. [filename] [arguments]
Linuxソースコマンドの例
source
を使用する方法のいくつかを次に示します。 コマンド:
引数を渡す
example.txtというテキストファイルを作成します ホーム 次の内容のディレクトリ:
pwd
date
time
source
を使用する このファイルの内容を引数として渡すコマンド:
source example.txt
出力は、source
を示しています コマンドは1行ずつ移動し、 example.txtにリストされているコマンドを実行します。 。
より複雑な例については、 example.txtの内容を変更してください 宛先:
echo "The current directory is:"
pwd
echo "Today's date is:"
date
echo "The time is:"
time
ファイルをHome/ source_command / exampleに移動します 。 source
を使用 コマンドで、ファイルへのフルパスを使用して、ファイルの内容を引数として渡します。
source source_command/example/example.txt
構成ファイルを読む
source
コマンドを使用すると、ファイルから変数を読み取ることもできます。サンプル構成ファイルexample_config.shを作成することから始めます ホーム ディレクトリと次のコンテンツの追加:
VAR1="a"
VAR2="b"
VAR3="c"
example_bash.shというbashスクリプトを作成します そして、以下を追加します:
#!/usr/bin/env bash
source example_config.sh
echo "VAR1 is $VAR1"
echo "VAR2 is $VAR2"
echo "VAR3 is $VAR3"
source
コマンドはexample_bash.shを許可します 変数を読み取るにはVAR1
、 VAR2
、および VAR3
example_config.shで定義しました 。
example_bash.shを実行します source
を使用したスクリプト コマンド:
source example_bash.sh
ソース関数
複数の異なるスクリプトで使用している関数がある場合は、それらを個別のファイルとして保存し、source
を使用できます。 スクリプトを作成するときにそれらを参照するコマンド。
たとえば、関数 check_root.shを作成することから始めます。 スクリプトを実行しているユーザーがrootユーザーであるかどうかを確認します:
check_root() {
if [[ $EUID -ne 0 ]]; then
echo "You must run this script as root"
exit 1
fi
}
example_script.shというスクリプトを作成します source
を使用します check_root.shを挿入するコマンド 機能:
#!/usr/bin/env bash
source check_root.sh
check_root
echo "This is the root user"
このスクリプトをroot以外のユーザーとして実行すると、"You must run this script as root"
が生成されます。 出力としてスクリプトを終了します:
bash example_script.sh
rootユーザーとしてスクリプトを実行すると、"This is the root user"
が表示されます。 出力として:
sudo bash example_script.sh
現在のシェル環境を更新する
この例では、エイリアスコマンド ll
を作成しています。 :
alias ll = 'ls -l'
このコマンドは、拡張形式を使用して現在のディレクトリ内のファイルを一覧表示します。
ただし、このコマンドは現在のシェルセッションでのみ機能します。永続的にするには、 bashrcを開きます 次のファイル:
sudo nano ~/.bashrc
#some more ls aliases
の下 セクションに、以下を追加します:
alias ll = 'ls -l'
source
を使用して現在のシェル環境を更新します コマンド:
source ~/.bashrc