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

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

Re: [shell-script] não consigo implementar o shift corretamente


From: Julio C. Neves
Subject: Re: [shell-script] não consigo implementar o shift corretamente
Date: Mon, 13 Oct 2008 12:23:59 -0300

Edmar, sempre que vejo parâmepros, penso no cmd for, cuja implementação sem
escopo foi feito para isso. Veja como fica fácil:

move ()
{
    for Arq; do
        mkdir -p $HOME/.lixeira
        mv $Arq $HOME/.lixeira
    done
}
if [ "$1" = -d ]; then
    shift
    move
else
    echo "Opcao invalida" ;;
fi

Neste uso do for, a variável Arq assume o valor de cada um dos parâmetros
posicionais e é muito veloz. Antes de entrar na função move, o primeiro
parâmetro foi excluído para o for assumir os outros.
-- 
Abração,
Julio
*Cursos de Shell nos finais de semana:
- Em SP ligue (11) 2125-4747;
- Em DF ligue (61) 3223-3000;
- Turmas fechadas em qualquer cidade ligue (21) 8112-9988*


2008/10/11 edmarssouza <address@hidden>

>   Oi galera, tudo bem?
> Preciso de uma ajudinha. Espero que possam me ajudar.
> É o seguinte, preciso que quando o usuário digitar, ex:
>
> move -d arq1 arq2 arq3
>
> Os arquivos correspondentes seja movido para um diretorio,
> dentro do seu diretorio pessoal. Não estou consigo implementar
> isso no meu script. Ele até funciona sem erro algum, mais os arquivos
> não são movidos.O código é o seguinte:
>
> #!/bin/sh
>
> move() {
> until [ $# -eq '0' ]; do
> mkdir -p $HOME/.lixeira
> mv $2 $HOME/.lixeira
> shift
> done
> }
>
> case $1 in
> -d) move ;;
> *) echo "Opcao invalida" ;;
> esac
>
> Se poderem me ajudar ficarei muito grato.
> Um abraço a todos da lista e até mais.
>
>  
>



-- 
Abração,
Julio
Cursos de Shell nos finais de semana:
- Em SP ligue (11) 2125-4747;
- Em DF ligue (61) 3223-3000;
- Turmas fechadas em qualquer cidade ligue (21) 8112-9988


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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