私は自分のサーバー用に少しカスタムの管理スクリプトを作ろうとしていますが、正しい結果でメニュースクリプトを作成するための問題が発生しています。bashで選択メニューを作成する
私は私のリスト変数は、したがって、上記のスクリプトでは私のオプションは、それに応じて動作しません
list: "docker" "pushover"
に従うようになります
function config
{
list=''
declare -a programs=("docker" "IdontExist" "pushover" "IdontexistEither")
for program in "${programs[@]}"
do
#Check if command exists on the server
if hash $program 2>/dev/null; then
list="${list} \"${program}\""
fi
done
title="Config manager"
prompt="Pick an option:"
options=(${list})
echo "$title"
PS3="$prompt "
select opt in "${options[@]}" "Quit"; do
case "$REPLY" in
#Dont know how to create this section in a script
1) echo "Update Docker"; break;;
3) echo "Update IdontExist"; break;;
2) echo "Update mytest"; break;;
4) echo "Update IdontExistEither"; break;;
$((${#options[@]}+1))) echo "Goodbye!"; break;;
*) echo "Invalid option. Try another one.";continue;;
esac
done
}
次のスクリプトを得ました。リスト変数に応じて、どのようにオプションを作成できますか?
また、「docker」を選択した場合など、選択したオプションに応じて関数を呼び出すこともできます。_docker_configという名前の関数を呼び出したい場合、その「pushover」を_pushover_configという名前の関数私もスクリプトでそれを達成するだろうか?
なぜ 'dialog'プログラムを試してみませんか?人生はずっと楽になります。 – DevilaN
@ cdarke:確かに。私は単に代替案を提案していたので、それはコメントにあった - 答えではない。 – DevilaN