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

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

Re: [shell-script] Script com tratamento de parâmetros


From: Julio C. Neves
Subject: Re: [shell-script] Script com tratamento de parâmetros
Date: Thu, 20 Oct 2016 21:42:36 -0200

Fala Tiago,
dá uma olhadinha nisso aqui: http://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo010#Comando_getopts. Está em português e cheia de exemplos.

Abcs,
Julio
@juliobash

P
róximos cursos de Shell
Cidade         Local Período
São Paulo 4Linux 05
-09/12
Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.


Em 20 de outubro de 2016 15:42, Tiago Tarifa address@hidden [shell-script] <address@hidden> escreveu:
 

Pessoal,

Eu fiz um script e gostaria de tratar os parâmetros passados antes mesmo de executar a função de cada um deles. Vou explicar melhor abaixo:

O script chama-se restaura.sh e tem os seguintes parâmetros:

"Estrutura: restaura.sh [opções] <arquivoDeConfiguração> [lista-pacotes.txt]

OPÇÕES:
  -c, --conf            Restaura o sistema baseado no arquivo Confs<dataDoBackup>.tar.bz2
                            opcionalmente gera a lista de pacotes.Ex.:
                            dj-restaura.sh -c arquivo-confs.tar.bz2 lista-pacotes.txt
  -s, --sistema       Restaura o sistema através do arquivo Sistema<dataDoBackup>.tar.bz2
  -u, --desfazer     Volta o backup feito da ultima alteração do sistema.
  -f, --force            Não faz perguntas.

  -h, --help            Mostra esta ajuda e sai.
  -V, --version       Mostra a versão e sai."

O que não pode acontecer:
-c ou --conf se chamado 2 ou mais vezes, tipo: 
$ restaura.sh -cf --conf ....

Também não pode chamar o (-u|--desfazer) com o (-c|--conf) e/ou com (-s|--sistema)
$ restaura.sh -s arquivo -u -c arquivo2 arquivo_lista

Eu tentei usar expressões regulares com o grep de várias formas. A que melhor cheguei foi esta:
$ grep -Eo -- '-[[:alpha:]]*(h|c)|--(conf|desfazer)' <<<$@ | wc -l

Também tentei com a opção -c do grep, mas parece que ele conta apenas quantas linhas casou com a ER e não quantas vezes a ER casou com a linha. 

Alguém tem uma dica, exemplo ou até mesmo link de algum padrão que já é seguido?



reply via email to

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