Re: Shell Scripts e Variáveis
Sergio,
se quer saber alguma coisa de Shell Script, entre para a melhor lista de
script em shell que existe.
To enviando informações sobre a lista.
Fique já sabendo que não aceitam sob hipotese alguma assuntos não
pertinentes ao Shell. Caso contrário o cara é chutado da lista.
Abraços,
Roberto Alves.
Guitarrista. Micro é coisa pra maluco!
=============================
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.
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
Sair da lista:
shell-script-unsubscribe@yahoogrupos.com.br
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil
=============================
Sérgio Pinheiro wrote:
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.
========================
Reply to: