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

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: