👌
Linuxコマンドを選択式にして連続実行
選択式連続実行スクリプト
スクリプト内容
-
menu()
を利用し、「番号を入力→準備したコマンドや関数を実行」 - テストとして、以下を記載
- pwdコマンド実行
- 用意したtestfunction(関数)実行
- 用意したnextstep(関数)実行
~/work # cat select.sh
#!/bin/sh
##### Menu #####
# 番号選択し、連続実行可能とするメニュー
function menu()
{
while :
do
echo "#####`hostname`:`date +%Y%m%d`#####"
echo "1 : pwd"
echo "2 : test function"
echo "3 : next step"
echo "0 : exit"
read key
if [ $key == 1 ]; then
pwd
elif [ $key == 2 ]; then
testfunction
elif [ $key == 3 ]; then
echo "nextstep test"
nextstep
elif [ $key == 0 ]; then
exit
fi
done
}
##### 事前準備 #####
# 複数ファイルやノード等を扱いたい場合に利用
declare -a Files=(\
file1 \
file2 \
file3 \
file4 \
file5 \
)
# 関数として実行させる場合に利用
function testfunction(){
for ((i=0; i< ${#Files[@]}; i++));
do {
echo "----- ${Files[$i]} ------"
} done
}
# 途中で止めたい処理がある場合に利用
function nextstep(){
key=n
while [ $key == n ]
do
echo "next step: y or n(exit)"; read key
if [ $key == "n" ]; then
exit
fi
done
}
##### Menu表示 #####
menu
テスト
- 1から順番に実行
~/work # sh select.sh
#####DESKTOP-M5NE5GB:20201106#####
1 : pwd
2 : test function
3 : next step
0 : exit
1
/root/work
#####DESKTOP-M5NE5GB:20201106#####
1 : pwd
2 : test function
3 : next step
0 : exit
2
----- file1 ------
----- file2 ------
----- file3 ------
----- file4 ------
----- file5 ------
#####DESKTOP-M5NE5GB:20201106#####
1 : pwd
2 : test function
3 : next step
0 : exit
3
nextstep test
next step: y or n(exit)
y
#####DESKTOP-M5NE5GB:20201106#####
1 : pwd
2 : test function
3 : next step
0 : exit
3
nextstep test
next step: y or n(exit)
n
~/work #
- 0指定でexit
~/work # sh select.sh
#####DESKTOP-M5NE5GB:20201106#####
1 : pwd
2 : test function
3 : next step
0 : exit
0
~/work #
Discussion