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

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

Re: [shell-script] Ajuda com Script Shell


From: Tiago Peczenyj
Subject: Re: [shell-script] Ajuda com Script Shell
Date: Mon, 16 Jan 2012 18:13:23 -0200

Ricardo

sugiro que tente dominar o assunto shell script no console. por exemplo o
que houve na linha 11?

Por que razão vc faria isso?

"$1"="$PATHLOCAL"

A atribuição de variaveis em shell é, mandatoriamente, a mesma.

VARIAVEL=valor

ou

VARIAVEL="alguma $COISA que $DEPENDA de $VARIAVEIS"

vc usa o $ na frente do nome da variavel para 'capturar' o valor da mesma.
Geralmente esta em maiusculas para chamar a atenção.

use o terminal e tenha certeza de que isto esta dominado. com o tempo vc
vai percebendo algumas formas de entender o que esta acontecendo. Por
exemplo se isso da errado:

"$3"="$DIRREMOTO"

experimente colocar um echo na frente

echo "$3"="$DIRREMOTO"

o que acontece? o que seria esperado?

um problema de cada vez e, quando vc percebe, ja resolveu a parada.

ps: valeu Cléoson

2012/1/16 Ricardo M Martins <address@hidden>

> **
>
>
> Amigos,
>
> Estou iniciando no mundo dos scripts shell, e gostaria de uma ajuda. Fiz um
> script para realizar conexão por ftp, que recebe os parâmetros e realiza o
> envio seguindo os dados informados. O script está funcionando, mas ao
> executar estou tendo como saída as seguintes linhas:
>
> $ ./ftp.sh /cygdrive/t Ricardo.exe /var/www
> *./ftp.sh: line 11: /cygdrive/t=/cygdrive/t: No such file or directory
> ./ftp.sh: line 12: Ricardo.exe=Ricardo.exe: command not found
> ./ftp.sh: line 13: /var/www=/var/www: No such file or directory*
> Copiando /cygdrive/t/Ricardo.exe para /cygdrive/t/Ricardo.exe.cache
> Realizando conexao FTP...
> Arquivo transferido com sucesso!
> Verificada a integridade dos arquivos, OK!
> Arquivo de cache apagado
>
> Finalizado!
>
> Pressione ENTER para sair.
>
> As linhas em* negrito* são o meu problema. Eu executo o script da seguinte
> forma ./ftp.sh <pathlocal> <arquivodestino> <diretorioremoto>, no entanto
> está apresentando erro nas linhas onde eu digo que as variáveis iniciais
> ($1, $2 e $3) passarão a ter outro nome. A impressão que dá é que
> interpretando as linhas como comando para executar. O source do script está
> abaixo:
>
> #!/bin/sh
>
> if [ "$1" = "" -o "$2" = "" -o "$3" = "" ]
> then
> echo "Envio de arquivos por FTP"
> echo "Uso: $0 <pathlocal> <arquivodest> <dirremoto>"
> echo
> exit 1
> fi
>
> #Declaracao das variaveis
> CACHEFILE=".cache"
> "$1"="$PATHLOCAL"
> "$2"="$ARQUIVODEST"
> "$3"="$DIRREMOTO"
>
> #Coletando tamanho do arquivo local
> TAMANHOLOCAL="`ls -l "$PATHLOCAL"/"$ARQUIVODEST" | awk '{print $5}'`"
>
> #Copiando o arquivo para um arquivo de cache
> echo "Copiando "$PATHLOCAL"/"$ARQUIVODEST" para
> "$PATHLOCAL"/"$ARQUIVODEST""$CACHEFILE""
> cd "$PATHLOCAL"
> cp "$ARQUIVODEST" "$ARQUIVODEST""$CACHEFILE"
>
> #Iniciando a conexao FTP
> echo "Realizando conexao FTP..."
>
> #Funcao FTP
>
> fn_ftp()
> {
> /usr/bin/lftp -u usuario,senha ipdoservidor <<EOF
> cd "$DIRREMOTO"
> mv "$ARQUIVODEST" "$ARQUIVODEST".old
> lcd "$PATHLOCAL"
> put "$ARQUIVODEST""$CACHEFILE"
> cd "$DIRREMOTO"
> mv "$ARQUIVODEST$CACHEFILE" "$ARQUIVODEST"
> ls "$DIRREMOTO"/"$ARQUIVODEST" > "$PATHLOCAL"/tamanhoremoto.txt
> bye
> EOF
> }
>
> #Executando FTP
> fn_ftp > /dev/null
>
> echo "Arquivo transferido com sucesso!"
>
> #Coletando tamanho do arquivo remoto
> TAMANHOREMOTO="`cat "$PATHLOCAL"/"tamanhoremoto.txt" | awk '{print $5}'`"
>
> #Comparando o arquivo local com o arquivo enviado para o servidor
> if [ "$TAMANHOLOCAL" -eq "$TAMANHOREMOTO" ]; then echo 'Verificada a
> integridade dos arquivos, OK!'; else echo 'Os arquivos foram corrompidos na
> transferencia!'; fi
>
> # Removendo o arquivo cache e o arquivo onde fica armazenada a informacao
> com o tamanho do arquivo remoto
> rm -f "$PATHLOCAL"/"$ARQUIVODEST""$CACHEFILE"
> rm -f "$PATHLOCAL"/tamanhoremoto.txt
> echo "Arquivo de cache apagado"
> printf "\nFinalizado!\n\nPressione ENTER para sair.\n"
> read
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Tiago B. Peczenyj
Linux User #405772

http://pacman.blog.br


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



reply via email to

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