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

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

Re: [shell-script-pt] Identificando diretórios não acessados


From: Julio C. Neves
Subject: Re: [shell-script-pt] Identificando diretórios não acessados
Date: Thu, 12 Dec 2019 09:55:07 -0300

Falei do Vade Mecum, não pela qualidade, pois sou leigo em direito (e em esquerdo tb), mas pelo tamanho do script...

Achei umas coisas que precisam ser corrigidas:
Vc fez:
    cd ${Dir[IndDir]} 2>/dev/null || {
    echo "Não posso acessar o diretório \"${Dir[IndDir]}\"." >&2
    let "N_Dir += 1" }
Proponho o seguinte:
    cd ${Dir[IndDir]} 2>/dev/null || {
    echo Não posso acessar o diretório \"${Dir[IndDir]}\". >&2
    let ++N_Dir; }  # Tem de ter um ponto e vírgula ou um <ENTER>

No script que te passei, o início da minha declaração do vetor era:
Dir=(""
/home/jamenson/outros_documentos/contabilidade
Onde aquele par de aspas criaria um Dir[0]="", ficando os dados entre Dir[1] ... Dir[5]. Fiz isso para facilitar a tua compreensão, já que no seu script original vc usava DIR1 ... DIR5

Como vc tirou esse par da aspas da declaração, o teu for deverá variar de zero a 4.

Isso foi numa rápida lida no script, pois o tempo tem sido meu inimigo mortal. Pode ser que hajam outras inconsistências.

Abraços,
Julio

» Não tem tempo para fazer um curso presencial?
» Na sua cidade não tem nenhum bom curso de Linux?
» Em outubro abriremos uma semana de inscrições
» para uma nova turma. Veja mais detalhes em:

Também damos treinamento em sua empresa
em qualquer cidadecom certificado e nota fiscal.







Em qui., 12 de dez. de 2019 às 02:59, Jamenson Ferreira Espindula de Almeida Melo <address@hidden> escreveu:
Em qua., 11 de dez. de 2019 às 10:54, Julio C. Neves
<address@hidden> escreveu:
>
> Fala Jamesonson,
> Acho que vc copiou esse script do Vade Mecum Forense (KKKKKKK)

KKKKK, Não! Na verdade, se tivesse copiado seria bem pior! Se eu te
contasse a péssima qualidade do texto das leis, a chance é grande de
você não acreditar em mim! KKK

>
> É muito difícil interpretar a lógica do script de outrem, sem perder muito tempo, mas vou te dar uns conselhos, vc tenta e vamos acertando ao longo do tempo.
>
> Recomendações:
>
> Não use variáveis em letras maiúsculas. Além de ser perigoso, pq vc pode criar uma com o mesmo nome de outra do sistema, dificulta a leitura;
> Em 99% dos casos, variáveis não precisam de estar entre chaves ({}). Isso é desnecessário e dificulta a leitura;
> Para simplificar seu prg, o ideal é usar vetores e for.
>
> Criando o vetor Dir (repare que só a primeira está em maiusc):
> Dir=(""
> /home/jamenson/outros_documentos/contabilidade
> /media/jamenson/windows/Users/Public/Documents/contabilidade
> /media/jamenson/windows/Users/Public/Documents/amway/contabilidade
> /media/jamenson/windows/mcjadvocacia/contabilidade
> /media/jamenson/windows/tmsa/01-corrente/contabilidade
> /cygdrive/c/Users/Public/Documents/contabilidade
> )
>
> Criando o Vetor Destino
> Destino=(
> jafesp-box:contabilidade/
> jafesp-gdrive:contabilidade/
> jafesp-mega:contabilidade/
> jafesp-onedrive:contabilidade/
> jafesp-yandex:contabilidade/
> )
>
> Agora acho que vc pode fazer algo assim:
> for ((IndDir=1; IndDir<=5; IndDir++))
> do
>     cd ${Dir[IndDir]}
>     for ((IndDest=0; IndDest<=4; IndDes++))
>     do
>         rclone --verbose --checksum --update --modify-window=1s --tpslimit 5
>         copy . ${Destino[IndDest]}
>     done
> done
>
> Agora temos de adaptar isso à sua realidade.
>

Obrigado pela ajuda.

Fiz uns ajustes e, por enquanto, o resultado é este:

 = = = = = Início de transcrição = = = = =

#!/bin/bash

E_XCD=86       # Acesso impossível ao diretório?
N_DIR=0        # Número de diretórios não acessados.

if env test -z "${RCLONE_CONFIG_PASS}"  # 0 (verdadeiro) = Variável \
não contém valor; 1 (falso) = Variável contém valor.

then

source /home/jamenson/set-rclone-password.txt

# Etapa um: copiar os arquivos de Jamenson

# Vetor "Dir"
Dir=(
/home/jamenson/outros_documentos/contabilidade
/media/jamenson/windows/Users/Public/Documents/contabilidade
/media/jamenson/windows/Users/Public/Documents/amway/contabilidade
/cygdrive/c/Users/Public/Documents/contabilidade
)

# Vetor "Destino"
Destino=(
jafesp-box:contabilidade/
jafesp-gdrive:contabilidade/
jafesp-mega:contabilidade/
jafesp-onedrive:contabilidade/
jafesp-yandex:contabilidade/
)

for ((IndDir=0; IndDir<=5; IndDir++))
do
    cd ${Dir[IndDir]} 2>/dev/null || {
    echo "Não posso acessar o diretório \"${Dir[IndDir]}\"." >&2
    let "N_Dir += 1" }
    for ((IndDestino=0; IndDestino<=4; IndDestino++))
    do
        rclone --verbose --checksum --update --modify-window=1s \
--tpslimit 5 copy . ${Destino[IndDestino]}

    done
done  # Está dando erro aqui:

./teste.sh: linha 39: erro de sintaxe próximo ao token inesperado `done'
./teste.sh: linha 39: `done'


# Etapa dois: copiar os arquivos do negócio Amway

# Vetor "Dir"
Dir=(
/media/jamenson/windows/Users/Public/Documents/amway/contabilidade
)

# Vetor "Destino"
Destino=(
jafesp-box:amway/contabilidade/
jafesp-gdrive:amway/contabilidade/
jafesp-mega:amway/contabilidade/
jafesp-onedrive:amway/contabilidade/
jafesp-yandex:amway/contabilidade/
)

for ((IndDir=0; IndDir<=5; IndDir++))
do
    cd ${Dir[IndDir]} 2>/dev/null || {
    echo "Não posso acessar o diretório \"${Dir[IndDir]}\"." >&2
    let "N_Dir += 1" }
    for ((IndDestino=0; IndDestino<=4; IndDestino++))
    do
        rclone --verbose --checksum --update --modify-window=1s \
--tpslimit 5 copy . ${Destino[IndDestino]}

    done
done


# Etapa três: copiar os arquivos do negócio mcjadvocacia

# Vetor "Dir"
Dir=(
/media/jamenson/windows/mcjadvocacia/contabilidade
)

# Vetor "Destino"
Destino=(
jafesp-onedrive:mcjadvocacia/contabilidade/
mcjadvocacia-gdrive:contabilidade/
mcjadvocacia-yandex:contabilidade/
)

for ((IndDir=0; IndDir<=5; IndDir++))
do
    cd ${Dir[IndDir]} 2>/dev/null || {
    echo "Não posso acessar o diretório \"${Dir[IndDir]}\"." >&2
    let "N_Dir += 1" }
    for ((IndDestino=0; IndDestino<=4; IndDestino++))
    do
        rclone --verbose --checksum --update --modify-window=1s \
--tpslimit 5 copy . ${Destino[IndDestino]}

    done
done


# Etapa quatro: copiar os arquivos do negócio tmsa

# Vetor "Dir"
Dir=(
/media/jamenson/windows/tmsa/01-corrente/contabilidade
)

# Vetor "Destino"
Destino=(
tmsa-gdrive:01-corrente/contabilidade/
tmsa-mega:01-corrente/contabilidade/
tmsa-yandex:01-corrente/contabilidade/
)

for ((IndDir=0; IndDir<=5; IndDir++))
do
    cd ${Dir[IndDir]} 2>/dev/null || {
    echo "Não posso acessar o diretório \"${Dir[IndDir]}\"." >&2
    let "N_Dir += 1" }
    for ((IndDestino=0; IndDestino<=4; IndDestino++))
    do
        rclone --verbose --checksum --update --modify-window=1s \
--tpslimit 5 copy . ${Destino[IndDestino]}

    done
done


if env test "${N_Dir}" -eq 7
then
echo "Não consegui acessar nenhum diretório. Nenhuma cópia de \
segurança foi produzida!"

exit ${E_XCD}
else
echo "Cópia de segurança produzida."
        exit 0
fi



fi

exit 0

 = = = = = Fim de transcrição = = = = =

Entendo que já mais "legível por humanos".

Jamenson Ferreira Espindula de Almeida Melo
Jaboatão dos Guararapes, Pernambuco, Brasil
Usuário GNU/Linux nº 166197
https://linuxcounter.net/cert/166197.png

Impressão digital da chave:
234D 1914 4224 7C53 BD13  6855 2AE0 25C0 08A8 6180

_______________________________________________
shell-script-pt mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/shell-script-pt

reply via email to

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