Ler arquivo texto e se tiver variável de ambiente, ler o seu valor

1. Ler arquivo texto e se tiver variável de ambiente, ler o seu valor

L. GUSTAVO
lgfcosta

(usa Linux Mint)

Enviado em 13/10/2012 - 23:11h

Olá pessoal,

Meu script (bash) lê um arquivo texto. Acontece que este arquivo texto pode conter tanto texto comum quanto uma variável de ambiente. Como faço para saber o valor de alguma variável que possa conter neste arquivo?

Por exemplo, digamos que o conteúdo do arquivo seja:

<inicio do arquivo>
CHANNEL=1
SEND='NSR_ENV=(NSR_DATA_VOLUME_POOL=semanal,NSR_SERVER=srv_name,NSR_CLIENT=$HOSTNAME)'
<fim do arquivo>

O nome da minha máquina é Copa, então, a saída que espero seria:

CHANNEL=1
SEND='NSR_ENV=(NSR_DATA_VOLUME_POOL=semanal,NSR_SERVER=srv_name,NSR_CLIENT=Copa)'

Agradeço antecipamente a todos.


  


2. Re: Ler arquivo texto e se tiver variável de ambiente, ler o seu valor

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 14/10/2012 - 09:16h

Use a condição if para comparar o conteúdo das variáveis:


if [ $HOSTNAME = Copa ]
then
comando1
comando2
fi



3. Re: Ler arquivo texto e se tiver variável de ambiente, ler o seu valor

Perfil removido
removido

(usa Nenhuma)

Enviado em 14/10/2012 - 11:08h

Amigo,

Os arquivos texto devem conter somente dados...

Se pretende incluir codigo de um script em outro utilize o comando source (bash builtin) que faz o "include" do codigo de um script em outro.

Para usar uma variavel de ambiente em shell a sintaxe é:
$Shell Script... é obrigatorio em maiusculas...

Exemplo:

echo ${$USER}


O source pode ser utilizado com o path completo...

Exemplo...

#! /bin/bash

NUMERO=125

source /mnt/disco/funcoes.sh

RAIZ=sqr($NUMERO)

# a funcao vem do arquivo funcoes...

T+


4. Re: Ler arquivo texto e se tiver variável de ambiente, ler o seu valor

L. GUSTAVO
lgfcosta

(usa Linux Mint)

Enviado em 14/10/2012 - 17:56h

Olá amigo,

Desculpe, não entendi sua explicação. Pelo que entendo do comando source, possibilita executar um arquivo shell da sua aplicação, ou estou falando besteira?

Não soluciona o meu problema.


5. Re: Ler arquivo texto e se tiver variável de ambiente, ler o seu valor

L. GUSTAVO
lgfcosta

(usa Linux Mint)

Enviado em 17/10/2012 - 11:23h

Olá pessoal,

Ninguém pode me ajudar?


6. Re: Ler arquivo texto e se tiver variável de ambiente, ler o seu valor

Paulo
paulo1205

(usa Ubuntu)

Enviado em 17/10/2012 - 22:39h

Se o seu arquivo só tiver definições de variáveis com uma sintaxe parecida com a do próprio shell, você pode, sim, fazer um source dele, como se fosse parte integrante do seu script. Nesse caso, porém, você terá de ter certeza de que o arquivo não terá erros de sintaxe nem comandos potencialmente perigosos (incluindo construções usando "`") quando o shell o executar.

Outra possibilidade, que lhe dá um pouco mais de controle, seria identificar quais linhas requereriam tratamento especial, e então executar apenas essas linhas com o shell, por meio do comando eval.

Se isso não lhe servir, você não terá outra solução, a não ser escrever um parser do seu arquivo.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts