shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Criar menu baseado em quantidade de itens num array


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
done

onde 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>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]