概要
数多くの関数が入ったスクリプトファイルにおいて **スクリプトファイルを編集せず**に特定の関数を呼び出す方法スクリプトファイルの関数
例 以下の内容のA.shというスクリプトファイルがあるとするとA.sh
funcA(){
echo "funcAを呼び出しました"
}
funcB(){
echo "funcBを呼び出しました"
}
ターミナル等で以下のコードで実行すると、関数は定義されただけなので何も起こりません
$bash A.sh
実行したい関数名を改めてスクリプトファイル内に書く必要があります
A.sh
funcA(){
echo "funcAを呼び出しました"
}
funcB(){
echo "funcBを呼び出しました"
}
funcA
funcB
このように編集すると2つの関数が呼び出され、二文が表示されます
スクリプトファイルを書き換えるのが面倒!
これで関数は扱えるようになりましたが、毎回実行したい関数を書き換えるのは面倒です それを解決するのが今回の方法です対処法
スクリプトファイルに引数を取らせて、その値に応じて呼び出す関数を変える処理を追加することですA.sh
funcA(){
echo "funcAを呼び出しました"
}
funcB(){
echo "funcBを呼び出しました"
}
##新しく追加する処理↓
#$1とは1つ目の引数という意味です
if [ $1 = "a" ]
then
funcA
elif [ $1 = "b" ]
then
funcB
else
echo "関数は呼び出されませんでした"
fi
新しいA.shにおいて、関数を呼び出したい場合に実行するコードは
$bash A.sh a
funcAを呼び出しました
$bash A.sh b
funcBを呼び出しました
このようになります
まとめ
数多くの関数が入ったスクリプトファイルにおいて
スクリプトファイルを編集せずに特定の関数を呼び出すには、、、
スクリプトファイルに引数を取らせて、その値に応じて呼び出す関数を変える処理を追加