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

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

Re: case e shift


From: edmarssouza
Subject: Re: case e shift
Date: Sat, 03 Jan 2009 14:30:21 -0000
User-agent: eGroups-EW/0.82

> Meu caro, acho que seu script poderia ficar assim:
> 
> if [ $# -gt 0 ]; then
>        case $1 in
>                  -d) shift
>                      mv -f $* /teste
>                     ;;
>                  -s) sort=1
>                    ;;
>         esac
>         shift
> fi
> 
> Observe que eu retirei as aspas do $# e do 0 porque nesse caso, se 
não me
> engano, você estaria comparando strings e não números. Depois, a 
opção $*
> faz com que se mova todos os arquivos que foram passados como 
parâmetros
> (menos a opção -d, que você jogou fora)  para esse diretório 
(/teste).
> Oberve também que não precisamos de um while e eu coloquei um if. 
Se o
> número de parâmetros não foi maior que zero (ou seja, se for zero), 
o script
> não irá fazer nada.
> 
> P.S.: Tente melhorar um pouco mais a indentação para que o código 
fique mais
> legível, ok?
> 
> 2009/1/3 edmarssouza <edmarssouza@...>
> 
> > while [ "$#" -gt "0" ]; do
> > case $1 in
> > -d) shift ; dir="$1" ; mv "$dir" /teste ;;
> > -s) sort=1 ;;
> > esac
> > shift
> > done
> >
> 
> 
> 
> -- 
> Elder Marco
> 
> Linux User: #471180
> 
> "O conhecimento é tristeza: aqueles que mais sabem são os que mais
> profundamente devem lamentar a mais fatal verdade, a árvore do 
conhecimento
> não é a da vida." (Versos extraídos da tragédia Manfred, de Byron e 
citado
> por Nietzsche em "Humano, demasiado humano")
> 
Eu acho que a causa maior não é as aspas porque até o pouco que eu sei
as aspas é usada para proteger as variaveis de erros. O que 
diferencia a comparação de string para numerica é os operadores.
Ex:

x="1"
if [ "$x" -eq "1" ]; then
... comandos
fi

para comparação numerica

e

x="shell"
if [ "$x" = "shell" ]; then
... comandos
fi

para comparação de string

é até onde eu sei. Mais estou muito agradecido pela contribuição
vou testar seu metodo aqui. Obrigadão mesmo. Um abraço.




reply via email to

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