Shell Scripts e Variáveis
Caros, tudo bem ?
Estou com uma dúvida de programação de shelll script.
Criei um arquivo de configurações como por exemplo "arquivo.conf"
Dentro do arquivo.conf em tenho configurações do tipo campo, exatamente como
o httpd.conf e outros.
Tipo assim:
# Arquivo de configuração de backup e restore
#
# Diretório de Backup
dir_backup=/backup
# Diretório de Restore
dir_restore=/restore
# Nome do arquivo gerado
nom_arq_tar=backup.tar.gz
E assim vai...
Porém, no script que controla o backup, eu preciso recuperar essas variáveis
do arquivo de configuração.
Eu tentei do jeito mais dinâmico e não deu - já explico porque não deu.
Do jeito fixo, pegando o valor pelo número da linha, deu certo - mas não
posso alterar ou incluir linhas.
Como por exemplo:
dir_backup=`head -n 15 arquivo.conf | tail -n 1 | cut -f2 -d= -s`
dir_restore=`head -n 20 arquivo.conf | tail -n 1 | cut -f2 -d= -s`
nom_arq_tar=`head -n 25 arquivo.conf | tail -n 1 | cut -f2 -d= -s`
Desse jeito, funciona e eu posso recuperar o valor das variáveis para uso
dentro do script.
Mas no caso dinâmico como abaixo, não consigo recuperar o valor das
variáveis para uso fora do loop:
egrep -v "#" arquivo.conf | while read linha; do
campo=`echo "$linha" | cut -f1 -d= -s`;
valor=`echo "$linha" | cut -f2 -d= -s`;
if test "$campo" != ""; then
if test "$campo" = "dir_backup"; then
dir_backup="$valor";
fi;
if test "$campo" = "dir_restore"; then
dir_restore="$valor";
fi;
if test "$campo" = "nom_arq_tar"; then
nom_arq_tar="$valor";
fi;
fi;
done;
Desse jeito acima, ficaria show, pois não importa a ordem, nem se tem
comentários posteriores.
O script está correto e funciona direito, não fosse o fato de as variáveis
perderem o valor fora do loop-while.
Alguma dica ?
Abraços,
Sérgio - Iniciante no Mundo Debian.
=============================================
_______________________________________________________
Yahoo! doce lar. Faça do Yahoo! sua homepage.
http://br.yahoo.com/homepageset.html
Reply to: