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

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

Re: [shell-script] Buscar parâmetros em lista - CASE/IF


From: Julio C. Neves
Subject: Re: [shell-script] Buscar parâmetros em lista - CASE/IF
Date: Mon, 30 Nov 2009 15:59:45 -0200

Fala Fernando,
já vi muita gente boa "quebrar a cara" por causa de testes de opções. A
coisa é bem mais complexa que parece e o problema não é gerado pela qtd de
opções, mas sim pelas suas combinações, isto é, algumas opções precisam
parâmetros (ex. paste -d: arq1 arq2), outras não (ex: paste -s arq1).
Algumas podem vir agrupadas (paste -s -d: arq1), outras podem vir juntas
(ex: paste -sd: arq1). E mais outras possibilidades...

Por causa deste grau de complexidade é que existe uma instrução (em shell e
em C) feita justamente para analise das opções passadas. Chama-se getopts, é
pouco conhecida, mas
aqui<https://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo010#Comando_getopts>vc
encontra a sua descrição e um monte de exemplos simples de entender e
no
bom e velho português.

Abraços,
Julio
Cursos de Shell e Zenity em 2 fins de semana?
- Em SP ligue (11) 2125-4747 Curso de 07 a 11/12;
- Em DF ligue (61) 3223-3000 Curso de zenity 09-10/01;
- No RJ ligue (21) 2561-0867. Curso nos dias 5,6,12,13/12;
- Turmas fechadas em outras cidades ligue (21) 8112-9988.


2009/11/26 Fernando Brombatti <address@hidden>

>
>
> Estou querendo montar um script onde eu informo uma listagem de parâmetros.
> Esses parâmetros serão os itens que eu querei executar.
> No decorrer do script terei um CASE ou IF que verificaria se, na variável
> LISTAGEM, existe o parâmetro em questão para executar algum comando.
>
> Exemplo de algoritmo:
> LISTAGEM="memoria disco tempo"
> CASE
> CASE $LISTAGEM possui memoria
> ECHO "TEM MEMORIA"
> CASE $LISTAGEM possui diso
> ECHO "TEM DISCO"
> CASE $LISTAGEM possui tempo
> ECHO "TEM TEMPO"
> CASE $LISTAGEM nao possui nenhum
> ECHO "NAO TEM NADA"
> ESAC
>
> Qual a forma ideal para fazer isso?
> a) CASE ou IF?
> b) Como eu verificaria, da forma mais instantânea (e mais elegante
> possível)
> se o item do CASE/IF consta na listagem?
>
> Flw.
>
> --
> Fernando Brombatti
> email-msn-gtalk-skype:
> address@hidden <brombatti%40gmail.com>
> work: +55 54 3218-6060
> home: +55 54 3028-7217
> mobile: +55 54 9189-7970
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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