Leandro, Muito Obrigado pelas explicações!
Você poderia me explicar como eu poderia fazer uma comparação entre dois arrays por favor ? ___________________________________________________ Rafael Gomes da Silva Email: [email protected] MSN: [email protected] Celular: (61)8108-6000 2009/11/12 Leandro Santiago <[email protected]> > 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 ${arr...@]}; 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=${#arr...@]} # 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_comparac...@]} > > for i in ${array_comparac...@]}; 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: [email protected] > > <mailto:rafael%40inspiretecnologia.com.br<rafael%2540inspiretecnologia.com.br> > > > > MSN: [email protected] > > <mailto:rafstrat%40hotmail.com<rafstrat%2540hotmail.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: [email protected] > --------------------------------------------------------------------- > 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]
