|
From: | Paulo |
Subject: | Re: [shell-script] Criar menu baseado em quantidade de itens num array |
Date: | Tue, 16 Apr 2019 14:21:45 -0300 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 |
Olá Alfredo, pensei em usar eval. eval 'select opt in "${options[@]}";do case $REPLY in '$( for ((i=1;i<=${#options[@]};i++));do echo $i\)echo ${vet_opt[i]}\;\;;done )'esac;done' O loop do for é executado antes e, com o echo, monta as opções do case. O vetor ${vet_opt[i]} é um vetor com os comandos de cada número de ${#options[@]}. Não testei então não sei se vai funcionar direito ecoando os comandos ali dentro do for e com o eval depois. Pode ser perigoso deletar, mover ou copiar alguma coisa numa das opções do case. Por isso o segundo echo, apenas pra ecoar o valor de ${vet_opt[i]}. Abraços Paulo On 16/04/2019 13:32, Alfredo Casanova address@hidden [shell-script] wrote:
Galera, quero criar um menu com a estrutura: select opt in "${options[@]}"; do case $REPLY in ....... esac doneonde as opções do case seriam geradas dinamicamente a depender da quantidade de items no array ${options[@]}. Esse array, dependendo de outras funções no script, pode ter entre 2 e 15 opções.Qual a melhor forma pra popular esse case dinamicamente? -- []'s Alfredo Tristão Casanova .͘. Linux User #228230 tel: +55 61 9655 9619 -------------------------------------------------------------------------------------------------------------- Enviado por: Alfredo Casanova <address@hidden>
[Prev in Thread] | Current Thread | [Next in Thread] |