[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]