「作成」は「c」、「削除」は「d」、「新規」は「n」など、シェルスクリプトからメニューを選択してショートカットを定義するにはどうすればよいですか?
パスワード:
#!/bin/bash
PS3="Enter an option: "
select option in create delete new quit
do
echo "Selected option was: $option"
if [ "$option" == "create" ]
then
read -r -p 'Create new partition: Please define a name of the partition: ' new_partition
read -r -p 'Define Size: Please define a size of the partition: ' partition_size
break
fi
if [ "$option" == "delete" ]
then
read -r -p 'Delete partition: Please define a name of the partition: ' delete_partition
break
fi
if [ "$option" == "new" ]
then
read -r -p 'Reset memory usage: Please define a name of the partition: ' reset_partition
break
fi
if [ "$option" == "quit" ]
then
break
fi
done
答え1
プロンプトに入力したselect
内容はすべて$REPLY
変数に反映されます。残念ながら、入力を終了するには「Enter」キーを押す必要があります。したがって、$REPLY
「c」、「d」、「n」、または「q」の文字を入力するたびに、「c」、「d」、「n」、または「q」の文字が保持され、そのcase
文字に対してステートメントを実行できます。 。
PS3="enter create, delete, new, quit, and hit <Return> "
select OP in create delete new quit
do echo ">$OP<, >$REPLY<"
done
1) create
2) delete
3) new
4) quit
enter create, delete, new, quit, and hit <Return> c
><, >c<
enter create, delete, new, quit, and hit <Return> d
><, >d<
enter create, delete, new, quit, and hit <Return> 1
>create<, >1<
enter create, delete, new, quit, and hit <Return>
答え2
入力を読んだ後のケース切り替え:
#!/bin/sh
echo select... c: create, d: delete, x:xxx...
read OPT
case $OPT in
c*)
echo c
;;
d*)
echo d
;;
*)
echo “User Selected Choice not present”
exit 1
esac