初めましてshoです。
シェルスクリプトの学習、練習メモです。
内容***「選択式メニューの作成」***
詳細
・実行したら以下のメニューが表示されるようにする
1)list file
2)current directory
3)exit
・番号選択したらそのまま実行(Enter押さなくても実行される)
・入力内容は非表示
(※学習記録やメモ書き目的で始めました。ほぼ初学者レベルなので理解が浅いところや誤りがあるかと思いますがよろしくお願いします。またアドバイス等コメントいただけるとすっごく嬉しいです。)
#使用コマンド
read =標準入力で受け取った内容を1行単位で変数に入れられるコマンド
###オプション
-s =入力内容を表示させない
-n [数字] =指定した文字数分の入力を受け取ったら次の処理へ進む
→「read -s -n 1 ・・・・」と記述して表示されたメニュー番号を入力したらそのままその番号が実行され、入力した番号は非表示にする
#スクリプト
#!/bin/sh
echo "1)list file"
echo "2)current directory "
echo "3)exit"
while :
do
read -s -n 1 var
case "$var" in
1) ls -l ;;
2) pwd ;;
3) exit ;;
4) echo no found ;;
esac
done
#実行結果
# t-menu.sh
1)list file
2)current directory
3)exit
1を入力
↓
合計 16
-rw-r--r-- 1 root root 826 3月 16 03:08 20210316.zip
drwxr-xr-x 2 root root 19 3月 11 19:40 dir1
drwxr-xr-x 2 root root 32 3月 11 19:40 dir2
drwxr-xr-x 2 root root 19 3月 11 19:19 dir3
-rw-r--r-- 1 root root 0 3月 12 02:00 file1
-rw-r--r-- 1 root root 0 3月 12 02:00 file2
-rw-r--r-- 1 root root 0 3月 12 02:00 file3
-rw-r--r-- 1 root root 116 3月 15 03:19 ip.txt
-rw-r--r-- 1 root root 337 3月 15 01:51 ip_sample.txt
-rw-r--r-- 1 root root 3 3月 15 23:04 sshfailed
drwxr-xr-x 4 root root 53 3月 16 02:20 test2
2を入力
↓
/root/test
3を入力
↓
# (exitを選択)
書いていて気がついたのですが、
シェルスクリプトでメニュー作成と検索すると「select」コマンドを使用するのが多いのですね。
簡単ではありますが、以上です!
#参照サイト