シェルスクリプトで別ファイルに定義した関数を呼び出す方法
目次
スポンサードリンク
シェルスクリプトで別ファイルに定義した関数を呼び出す方法を解説します。
関数の定義方法
シェルスクリプトでは以下のように関数を定義できます。
関数名() {
# 関数の処理
}
文字列を出力するだけのシンプルな関数を作るとこのようになります。このファイルをfunction.shとして保存しておきます。
#!/bin/bash
function hello() {
echo "Hello, world!"
}
関数定義を読み込んで別ファイルから呼び出す方法
別のシェルスクリプトを用意して関数を読み込む際は source コマンドを使用します。先程保存しておいたfunction.shと同じフォルダにシェルスクリプトを作成します。
#!/bin/bash
source function.sh
hello
exit 0
source の後に、読み込みたいシェルスクリプト名のパスを指定します。今回は同一フォルダ内に配置してあるのでファイル名だけですが、「 source ~/.profile」のようにパスを指定することもできます。
もう一つ別の方法としてピリオドを使う方法があります。ピリオドはsourceコマンドのエイリアスとして動作しますが、ソースコード上で見落とすことも多く、私は基本はsourceコマンドを使うようにしています。
実行権限について
シェルスクリプトを実行するためには実行権限が必要です。関数定義を読み込む側のシェルスクリプトには実行権限が必要ですが、関数を定義し、source コマンドで指定するシェルスクリプトの方は実行権限が無くても動作します。
シェルスクリプトで別ファイルに定義した関数を呼び出す方法を解説しました。シェルスクリプトの知識は、プログラマにとって長く役立つ知識です。 私はこちらの書籍で一通り知識を抑えました。基本から丁寧に解説されています。
最短3時間で覚えるLinuxシェルスクリプト
こちらは、シェルスクリプトの基本的な書き方、デバッグ方法、if, case, while, forなど基本的な制御構文について書かれています。30日間の無料体験もできる『Kindle Unlimited』でも読むことができます。
Search
Recent Posts
- カーネル更新やパッケージのパッチ適用後、OSの再起動が必要か確認するLinuxコマンド(needs-restarting)
- OpenSSHのエラー「bad ownership or modes for chroot directory component」の原因と解消方法
- Apacheの起動状態をチェックして停止してる場合にApacheを起動するシェルスクリプト
- Amazon LinuxのOSバージョンを調べる方法|/etc/redhat-release の代替ファイル
- MYSQLでダンプファイルを取得する際に発生したエラー「Couldn't execute 'SELECT BINLOG_GTID_POS('', '0')': You are not using binary logging (1381)」の原因と対処方法