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

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

Re: [shell-script] Shell clean code :)


From: Reinaldo de Carvalho
Subject: Re: [shell-script] Shell clean code :)
Date: Mon, 16 Jan 2012 16:40:07 -0300

2012/1/16 Tiago Peczenyj <address@hidden>:
>
> 1. vc poderia utilizar regexp para determinar se é vazio ou nao:
>
> function isEmpty { [[ $1 =~ ^[[:space:]]*$ ]] ; return $? ; }
>

Feito. :)

>
> 2. Vc pode testar diretamente o valor da $?
>
> if isEmpty "$1"; then
>  # stuff
> fi
>

Feito :)

> 3. a mesma coisa com mkdir
>
> if ! mkdir -p dir ; then
> ...
> fi
>

Feito :)

> 4. a função
>
> buildMd5AndShaFromJarXmlPom
>
> poderia ser escrita assim:
>
> find . -type f -name '*.jar' -or -name '*.pom' -or -name '*.xml' | xargs
> -I{} echo "md5sum {}.md5" \; echo "sha1 {}.sha"
>

como usar bash expansion para tirar a extensão de um {}?

> agora fiquei na duvida do motivo pelo qual isto foi feito assim:
>
> echo -n $(md5sum $line) | cut -c1-32 | tr -d '\n'
>
> precisa desse echo -n ? o cut e o tr ok...

Esqueci de tirar depois que me convenci que o cut tava gerando o \n... kkkk :)

>
> 5. a função extractPomFromJar
>
> poderia receber como entrada um find com as opções corretas ao inves do ls,
> visto que rola um unzip seguido de umas verificações. alias o unzip possui
> uma opção -q e -qq que praticamente nada é impresso na tela, dessa forma
> não necessita fechar a saida padrão e erro.
>

Feito.

> 6. a função requireCmd poderia apenas testar o resultado do comando which
>
> pacman2:boost peczenyj$ which gcc
> /usr/bin/gcc
> pacman2:boost peczenyj$ echo $?
> 0
> pacman2:boost peczenyj$ which gcca
> pacman2:boost peczenyj$ echo $?
> 1
>
> Alias se vc passar uma string vazia o which também acusará erro. O comando
> which tem uma opção -s (silenciosa) para esse tipo de coisa.
>

Feito.

> O resto esta bom, apesar de notar a influência do java nesse script com as
> funções em camelcase. não que isso seja ruim, apenas acho curioso.

=D

> alias se
> isto é um script para gerenciar repositorio maven que vantagem tu vê em
> usar shell script ao inves de utilizar um script ant, por exemplo (alem de
> ant ser feio por natureza com a estrutura de xml maluca dele)?
>

Just for fun :)

> Eu notei uma coisa, entretanto. Vc acusa o erro mas realiza o exit comum.
> Nesse caso eu sugiro
>
> 1. escreva a mensagem de erro na saida de erro (STDERR) através do
> modificador >&2
> 2. execute exit com valor diferente de 0
>
> Mas isso se fizer sentido para vc.
>

Feito.

> Abraços
>

[]s pacman!

> Tiago
>


-- 
Reinaldo de Carvalho
http://korreio.sf.net
http://python-cyrus.sf.net

"While not fully understand a software, don't try to adapt this
software to the way you work, but rather yourself to the way the
software works" (myself)


reply via email to

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