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

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

Re: [shell-script] Dúvida


From: Tiago Peczenyj
Subject: Re: [shell-script] Dúvida
Date: Thu, 12 Nov 2009 10:29:02 -0200

vc não pode fazer um cp -vru origem destino

       -v, --verbose
              explain what is being done
       -R, -r, --recursive
              copy directories recursively
      -u, --update
              copy only when the SOURCE file is newer than the
destination file or when the destination file is missing

dependendo do sistema operacional vc tem estas opções.

e o rsync ou um controlador de versão como cvs ou git (git não
necessita de um servidor central) pode servir :)

2009/11/12 Leandro Santiago <address@hidden>:
> Colega, talvez lhe falte um conhecimento maior na linguagem. Por
> exemplo, não é uma boa prática usar as crases (`comando`) para executar
> subcomandos, já que elas são visualmente feias e facilitam que vc se
> perca na leitura. Use $(comando).
>
> Outra coisa, comparação no shell frequentemente é feita com o programa
> test, ou seu "apelido", [].
>
> Ou seja,
> if "$diretorio_local_copia_qtdade" -eq "$diretorio_local_temporario_qtdade"
>
> Não existe. Tente
> if [ "$diretorio_local_copia_qtdade" -eq
> "$diretorio_local_temporario_qtdade" ]
>
> Ou, como está usando o bash, que possui vários recursos "embutidos",
> if (( diretorio_local_copia_qtdade == diretorio_local_temporario_qtdade
> )); then
>
> Muito provavelmente isto fará com que o programa entra na instrução do
> if e possa fazer a manipulação do seu array.
>
> E cuidado com a manipulação de arrays, pq quando vc diz
> for i in ${array[@]}; do
>
> Há uma chance bem grande de fazer "cagada", já que em cada iteração o
> for vai usar uma "palavra", ou seja, separada por espaços, o que pode
> prejudicar a manipulação de elementos que contém este caractere.
>
> Há vários jeitos de contornar isso, mas um jeito bem bashiano (e comum
> em linguagens mais antigas) é:
>
> comp=${#array[@]} # quantidade de elementos no array
> for (( i=0; i < comp ; i++ )); do
> faça alguma coisa com "${array[$i]}"
> done
>
> Eu quando sei que vou usar o bash faço de tudo para usar o máximo de
> recursos que ele oferece. Tá, chamam de "bashismo", mas se está lá (no
> bash), então é para ser usado :-)
>
> PS: já tentou usar algo como o rsync?
>
> Rafael Gomes wrote:
>>
>> Pessoall,
>>
>> Estou com um problema no meu array que não consegue ser incrementado.
>>
>> --------------------------------------------
>> #!/bin/bash
>>
>> #endereco ip do servidor
>>
>> #servidor=$1
>>
>> #Diretorio de copia do Mainframe para a maquina linux
>> diretorio_local_copia=/root/lab1
>>
>> #Diretorio de comparacao com a copia realizada localmente
>> diretorio_local_temporario=/root/lab2
>>
>> #Comparar os diretorios temporarios
>>
>> diretorio_local_copia_qtdade=`ls -al $diretorio_local_copia| wc -l`
>> diretorio_local_temporario_qtdade=`ls -al $diretorio_local_temporario| wc
>> -l`
>>
>> if "$diretorio_local_copia_qtdade" -eq
>> "$diretorio_local_temporario_qtdade"
>> then
>> echo "Diretorios tem quantidades iguais"
>> else
>> array_comparacao=( $( diff $diretorio_local_copia
>> $diretorio_local_temporario| cut -d' ' -f4))
>> echo ${array_comparacao[@]}
>> for i in ${array_comparacao[@]}; do
>> cp $diretorio_local_copia/${array_comparacao[*]}
>> $diretorio_local_temporario
>> done
>> fi
>>
>> ----------------------------------------------
>>
>> A intenção deste script é verificar se existe a mesma quantidade de
>> arquivos
>> no diretório lab2.
>> Caso não exista os arquivos são copiados da pasta lab1 para a pasta lab2.
>> Neste passo da cópiia que está ocorrendo o meu problema.
>>
>> Alguém pode dar uma luz sobre o que pode estar acontecendo ?
>>
>> Obrigado !
>> ___________________________________________________
>> Rafael Gomes da Silva
>> Email: address@hidden
>> <mailto:rafael%40inspiretecnologia.com.br>
>> MSN: address@hidden <mailto:rafstrat%40hotmail.com>
>> Celular: (61)8108-6000
>>
>> [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
>
>
>



-- 
Tiago B. Peczenyj
Linux User #405772

http://pacman.blog.br


reply via email to

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