removido
(usa Nenhuma)
Enviado em 01/01/2012 - 15:50h
Olá amigos da vol,
Estou fazendo um shell script para backup, porém estou tendo problema com o trecho abaixo:
titulo="Dados de Entrada"
form="Digite abaixo os nomes do seu backup, do diretório ou arquivo que deseja fazer backup, \
do local de destino do backup e do arquivo e ou diretório que dazer exclude do backup \
(Este arquivo ou diretório deverá está contido dentro local de origem, caso deixe está opção em branco \
nenhum dados será excluido do backup"
entrada=$(dialog --stdout \
--title "$titulo" \
--form "$form" 15 60 4 \
"Nome do backup:" 1 1 " " 1 19 40 0 \
"Local de Origem:" 2 1 " " 2 19 40 0 \
"Local de Destino:" 3 1 " " 3 19 40 0 \
"Exclude:" 4 1 " " 4 19 40 0)
arq=$(echo "$entrada" | head -1)
pat=$(echo "$entrada" |head -2 | tail -1)
patd=$(echo "$entrada" |head -3 | tail -1)
excluir=$(echo "$entrada" | tail -1)
if [ -z "$entrada" ];then
echo " Operação cancelada..." && exit 0
elif [ "$arq" = " " -o "$pat" = " " -o "$patd" = " " ];then
echo "Informação insuficiente" && exit 0
elif [ -e "$pat" ];then
echo " Diretório de origem não existe"
elif [ -e "$patd" ];then
echo "Diretório de destino não existe"
fi
O trecho que mostra as expressões com if e elifs estão dando problema, pois quero verificar se o diretório ou arquivo existe porém se digito um diretório ou arquivo que não existe o script não retorna o esperado que é a messagem com "echo".
já cheguei a pensar que são de alguma forma as variáveis "arq","pat","patd" e "excluir", pois quando rodo o script como está abaixo não funciona, deixando os campos do dialog em branco (sem nada) as expressões não funcionam:
if [ -z "$entrada" ];then
echo " Operação cancelada..." && exit 0
elif [ -z "$arq" -o -z "$pat" -o -z "$patd" ];then
echo "Informação insuficiente" && exit 0
elif [ -e "$pat" ];then
echo " Diretório de origem não existe"
elif [ -e "$patd" ];then
echo "Diretório de destino não existe"
fi
alguém poderia melhorar esta parte do script ou me informar o que está acontecendo ?