[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Problema com nome de variável
From: |
eduardo_a_s_amaral |
Subject: |
Problema com nome de variável |
Date: |
Mon, 30 Dec 2013 16:35:47 -0000 |
User-agent: |
eGroups-EW/0.82 |
Olá Pessoal!
Como vão?
Estou tendo um problema um tanto quanto esquisito num trecho do meu script.
Não sei porque não consigo pegar o valor de uma variável.
Vou tentar decrever oque este trecho faz:
A ideia aqui é enviar uma sequencia de imagens via SCP, vou enviar uma a uma e
informar o progresso através o zenity. Entretanto, quero verificar se houve
algum erro e, dependendo disso, parar a operação, informando a mensagem
correspondente.
Segue o trecho de código:
#Variável RETORNO_SCP utilizada para verificar se houve erros durante a
transferência via SCP
RETORNO_SCP=0
# Variável LOOP, verifica a quantidade de arquivos que serão enviados e é usada
no LOOP
LOOP=$(ls -ltr ${DIR}/arquivos/*.png 2> /dev/null | wc -l )
if [ ${LOOP} -gt 0 ]
then
(
for CONTADOR in $( seq 0 ${LOOP})
do
PROGRESSO=$(echo "(${CONTADOR}*100)/${LOOP}" | bc)
echo "# Enviando ${CAMADA_LOOP}.\n${CONTADOR} de ${LOOP},
${PROGRESSO}% concluído."
sleep 0.1
scp -P${PORTA_SSH} ${DIR}/arquivos/*.png
${USER}@${IP_CLIENTE}:${DIR}/arquivos/ &> /dev/null
#Esta é a variável (RETORNO_SCP) que vai verificar se houve
algum erro durante o envio. Aqui eu consigo manuseá-la sem nenhum problema
RETORNO_SCP=$(expr ${RETORNO_SCP} + $?)
#Aqui funciona!!
if [ ${RETORNO_SCP} -eq 5 ]
then
zenity --error --title="Lintv3D - ${CLIENTE}"
--text="Erro ao enviar ${CAMADA_LOOP}"
break;
fi
done) | zenity --progress --auto-close --auto-kill --percentage=0
--width=230 --height=100 --title="Lintv3D - ${CLIENTE}"
#Verifica se o usuário escolheu a opção Fechar/Cancelar. A variável
$RETORNO, guarda o código de saída do último processo e a passa para uma função
que exibe uma mensagem correspondente. Oque quero é verificar se houve algum
erro e alterar o valor desta variável, deixando igual à $RETORNO_SCP, mas o
problema é que a variável $RETORNO_SCP não tem valor nenhum aqui, mesmo que o
valor tenha sido configurado no laço mais acima.
RETORNO=$?
#Aqui a variável $RETORNO_SCP não tem mais o valor com o qual foi
configurada na laço for anterior
case ${RETORNO_SCP} in
5)
RETORNO=1
esac
Verif_Status ${RETORNO}
else
(zenity --error \
--window-icon="error" \
--title="${CLIENTE}" \
--text="\"${PRODUTO}\" não encontrado.")
return 1;
fi
Basicamente é isto, deu pra entender a ideia ou compliquei muito?
Desde já, obrigado pela atenção!
- Problema com nome de variável,
eduardo_a_s_amaral <=