Sou iniciante no bash, mas gostaria de criar um script no qual gostaria de permitir que o usuário selecione várias opções em uma lista de opções.
Basicamente, o que eu gostaria é algo semelhante ao exemplo abaixo:
#!/bin/bash
OPTIONS="Hello Quit"
select opt in $OPTIONS; do
if [ "$opt" = "Quit" ]; then
echo done
exit
elif [ "$opt" = "Hello" ]; then
echo Hello World
else
clear
echo bad option
fi
done
(Originário de http://www.faqs.org/docs/Linux-HOWTO/Bash-Prog-Intro-HOWTO.html#ss9.1 )
No entanto, meu script teria mais opções e gostaria de permitir a seleção de múltiplos. Então, algo como isto:
1) Opção 1
2) Opção 2
3) Opção 3
4) Opção 4
5) Concluído
Ter feedback sobre os que eles selecionaram também seria ótimo, por exemplo, sinais de adição ao lado dos que eles já selecionaram. Por exemplo, se você selecionar "1", gostaria de paginar para limpar e reimprimir:
1) Option 1 +
2) Option 2
3) Option 3
4) Option 4
5) Done
Então, se você selecionar "3":
1) Option 1 +
2) Option 2
3) Option 3 +
4) Option 4
5) Done
Além disso, se eles selecionarem novamente (1), eu gostaria que "desselecione" a opção:
1) Option 1
2) Option 2
3) Option 3 +
4) Option 4
5) Done
E, finalmente, quando Concluído é pressionado, gostaria que uma lista daqueles que foram selecionados fossem exibidos antes da saída do programa, por exemplo, se o estado atual for:
1) Option 1
2) Option 2 +
3) Option 3 +
4) Option 4 +
5) Done
Pressionar 5 deve imprimir:
Option 2, Option 3, Option 4
... e o script termina.
Então, minha pergunta - isso é possível no bash, e se alguém é capaz de fornecer um exemplo de código?
Qualquer conselho seria muito apreciado.