今回はLinuxのsourceコマンドについて説明しようと思います。
sourceコマンドとは、シェルスクリプトを実行するために使用するコマンドです。
下記に書式を示します。[]内は省略可能
source シェルスクリプトのパス [引数]
. シェルスクリプトのパス [引数]
上記2行の書式はどちらを入力しても同じ処理動作になります。先頭にある「.」(ドット)がsourceコマンドとして認識されます。
シェルスクリプトのパスは相対パス、絶対パスどちらでも可能です。
通常シェルスクリプトを実行する際はスクリプトファイルに実行権を付与してファイルの絶対パスをプロンプトへ入力すれば実行できますが、sourceコマンドなら実行権が無くとも読み取り権が有れば実行できます。
試しに仮想環境にて簡単なシェルスクリプトを作成し、sourceコマンドを実行してみようと思います。
シェルスクリプト内容を下記に示します。
「test.sh」というファイル名で上記内容のスクリプトファイルを作成しました。
このスクリプトファイルの権限は下記画像のように実行権が有りません。
このスクリプトを実行すると、「Hello」という文字と「World」という文字が2行にわたって表示されます。
「source」コマンドを実行してみると下記のように文字が表示されます。
「.」の場合でも下記画像のように同様の実行結果となります。
ここでスクリプトファイルの読み取り権限を無くし、再度「source」コマンドにて実行すると、下記画像のように実行できません。
このように「source」コマンドは読み取り権が無いとスクリプトファイルを実行できないので注意が必要です。
この「source」コマンドはシェルスクリプトの実行方法としても使用されるのですが、その他にも「.bashrc」等の設定ファイルを変更した後、「source .bashrc」と実行して変更内容を現在のシェルに反映させるために使用されることもあります。
今回は「source」コマンドについて説明させていただきました。
参考資料
・「bash」、「source」といったシェルスクリプトの実行方法の違いを紐解いてみる - Qiita
・【 source 】【.】 ファイルからコマンドを読み込んで現在のシェル環境で実行 【 Linuxコマンドまとめ 】 | LFI (linuxfan.info)