シェルスクリプトを何ファイルも作るプロジェクトだと共通処理を外部ファイルに定義したいことあると思います。
例えばDBの接続やログ出力の関数は外部ファイルに定義して、色々なシェルで使いたいですよね。
でも具体的にこれってどうやるんだっけてなることもあると思うので、今回シェルスクリプトで共通処理を外部ファイルにして使う方法を説明します。
以下のように共通処理ファイルを定義します。
#!/bin/sh # 共通関数 function common_func1() { echo "共通関数実行されてるよ" } # 共通関数1 function common_func2() { # 引数1 message1=$1 # 引数2 message2=$2 # 引数3 message3=$3 # ログ出力 echo "${message1} ${message2} ${message3}" } # 共通関数2 function common_func3() { # 開始ログ出力するよ # SQL実行するよ # SQLの実行結果をログに出すよ } # 共通関数3 function common_func4() { # DB切断するよ # エラーのときログ出すよ }
これを実際にロジックを実行するシェルで読み込んで使います。
読み込み方・実行の仕方はこんな感じです。
#!/bin/sh # 共通関数ファイルを読み込み . common_func.sh echo "共通関数実行1(common_func1)" common_func1 echo "共通関数実行2(common_func2)" common_func2 "2020-09-15" "INFO" "ログ"
実行結果は以下のようになります。
$ sh test.sh 共通関数実行1(common_func1) 共通関数実行されてるよ 共通関数実行2(common_func2) 2020-09-15 INFO ログ
このような感じで、共通処理を外部ファイルに定義して、実際の業務処理を実行するファイルから読み込んで共通処理を実行することが出来ます。
ぜひ使ってみてください。