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: Alysson Gonçalves de Azevedo
Subject: Re: [shell-script] Ajuda com Script Shell
Date: Mon, 16 Jan 2012 18:19:05 -0200

outra dica é usar, no inicio do arquivo, a linha
#!/bin/bash -x
o -x indica para debugar o script.

Alysson Gonçalves de Azevedo
(11) 8491-7730



Em 16 de janeiro de 2012 18:13, Tiago Peczenyj
<address@hidden>escreveu:

> 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]
>
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> prévio aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>


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



reply via email to

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