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: Alfredo Casanova
Subject: Re: [shell-script] Criar menu baseado em quantidade de itens num array
Date: Tue, 16 Apr 2019 14:49:41 -0400

A solução do Maik deu certão, valeu!


On Tue, Apr 16, 2019 at 1:40 PM Paulo address@hidden [shell-script] <address@hidden> wrote:
 

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>



--
[]'s
Alfredo Tristão Casanova .͘.
Linux User #228230
tel: +55 61 9655 9619

reply via email to

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