Nowe posty

Autor Wątek: echo przekazanie zmiennej  (Przeczytany 3997 razy)

slawekdw

  • Gość
echo przekazanie zmiennej
« dnia: 2011-02-03, 15:10:06 »
Witam
mam skrypt który pobiera dane z pliku konfiguracyjnego
i tak

w skrypcie mam zdefiniowane zmienne
#pobranie zmiennej $tresc z pliku program.config
tresc=$(cat /etc/program.config | awk -F'=' '(NR==1){print $2}') 
kwota=$(cat /tmp/plik.txt | grep -m1 PLN )
wysylam maila
echo "$tresc" | mailx itd......

Chce by w zmiennej tresc znajdowala sie zmienna kwota

plik program.config wyglada tak

Trescc wiadomosci=Pozostalo do zaplaty $kwota
niestety mail przychodzi ale zamiast podstawionej liczby ze zmiennej $kwota jest $kwota

Prosze o pomoc w rozwiazaniu problemu

_____________
arctgx: http://forum.linux.pl/help.php#bbcode

arctgx

  • Gość
echo przekazanie zmiennej
« Odpowiedź #1 dnia: 2011-02-03, 21:03:29 »
Taki twór
eval echo $( IFS==; read naglowek tresc < program.config; echo $tresc )
jest już ogolony z niepotrzebnego awka i tym bardziej cata, ale zamiast niepotrzebnego komplikowania proponuję program.config przerobić na fragment skryptu do inkluzji poleceniem . (kropka).

Przypisanie separatorowi pól niecytowanego znaku równości u mnie działa, ale na wszelki wypadek możesz go wcześniej zacytować:
IFS='='

slawekdw

  • Gość
echo przekazanie zmiennej
« Odpowiedź #2 dnia: 2011-02-03, 21:30:59 »
Super dzieki za podpowiedz
Musze miec cata i awk poniewaz to tylko czesc pliko config
mam tam jeszcze sporo linii z roznymi danymi ktore program pobiera
jak by to wygladalo (skomplikowanie) z catem i awk ?
 eval echo $(read $tresc) | mailx ..... itd  ?