> 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 <edmarsso...@...> > > > 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.
