たまーに書くことがある標準入力を受け付けながら処理を分岐するシェルのサンプル。
こういうやつ
番号を入力したら入力された番号の処理を実行するってやつ。
以下のサンプルでは 1 を入力したら 1って処理を実行してる。
テンプレート
read で標準入力を受け付けて、 Swith文で分岐する、みたいな感じ。
#! /bin/bash
####################################################
# スクリプト名 : main.sh
# 説明 : 指定された処理を実行するよ
# 引数 : なし
# $1 : -
# 実行例 : ./main.sh
# 更新日 : YYYY/MM/DD
# 作成者 : takiguchi-yu
####################################################
# 処理1 引数なし
function _func1
{
echo
echo -e "\033[0;32m[INFO]: \033[0;39m"処理1 開始します
echo -e "\033[0;32m[INFO]: \033[0;39m"処理1 終了します
echo
}
# 処理2 引数2つ
function _func2
{
echo
echo -e "\033[0;32m[INFO]: \033[0;39m"一つ目の引数
echo -e "\033[0;32m[INFO]: \033[0;39m"$1
echo -e "\033[0;32m[INFO]: \033[0;39m"二つ目の引数
echo -e "\033[0;32m[INFO]: \033[0;39m"$2
exit 0
}
# メイン処理
while :
do
echo "------------------------------------------------------"
echo -e "\033[0;34m[1]: \033[0;39m"処理1 を実行します
echo -e "\033[0;34m[2]: \033[0;39m"処理2 を実行します
echo -e "\033[0;34m[3]: \033[0;39m"処理3 を実行します
echo -e "\033[0;31m[q]: シェルを終了します\033[0;39m"
echo "------------------------------------------------------"
read -p "番号を選択してください: " num
case "${num}" in
"1" ) _func1 ;;
"2" ) _func2 arg1 arg2 ;;
"q" ) exit ;;
esac
done