Freesco, NND, CDN, EOS
http://forum.freesco.pl./

bash "szablon" zmiennej
http://forum.freesco.pl./viewtopic.php?f=34&t=17522
Strona 1 z 1

Autor:  viater [ sobota, 28 lutego 2009, 17:39 ]
Tytuł:  bash "szablon" zmiennej

Szlag mnie trafia, bo już drugi dzień kombinuję:
: [/] [] ()
#!/bin/bash
.......
.......

##  w tym momencie $var1 i $var3 są nie ustawione
szablon="${var1} cos tam np `/bin/date` ${var3} jakis tekst"

## dopiero teraz ustawiane są zmienne
var1="dupa jasiu"
var3="pierdzi stasiu"

## oczywiście
echo "$szablon"
## da wynik
##  cos tam np /tutaj data w domyślnym formacie/  jakis tekst


... a ja potrzebuję "re-parsować" (?) zmienną $szablon tak, żeby w odpowiednich miejscach znalazły się wartości zmiennych $var1 i $var3.
Jeszcze jedno - nie znam "z góry" nazw zmiennych zawartch w szablonie.

Ma ktoś jakiś pomysł ?

Autor:  -MW- [ sobota, 28 lutego 2009, 22:03 ]
Tytuł: 

Cytuj:
$szablon


pzeciez nie bedzie miala roznych wartosci

Autor:  viater [ niedziela, 1 marca 2009, 01:04 ]
Tytuł: 

-MW- pisze:
Cytuj:
$szablon


pzeciez nie bedzie miala roznych wartosci


Wybacz, ale chyba nie zrozumiałeś problemu...

Autor:  pape [ niedziela, 1 marca 2009, 10:17 ]
Tytuł: 

Jeśli ja dobrze zrozumialem to powinno to wygladac tak:

: [/] [] ()
#!/bin/bash

##  w tym momencie $var1 i $var3 są nie ustawione
var1="dupa jasiu"
var3="pierdzi stasiu"
szablon="pierwsza zmienna: ${var1} +  druga zmienna ${var3}"

## dopiero teraz ustawiane są zmienne
##var1="dupa jasiu"
##var3="pierdzi stasiu"

## oczywiście
echo "$szablon"
## da wynik
##  cos tam np /tutaj data w domyślnym formacie/  jakis tekst


daj zmienne var1 i var3 przed szablon ;)

Zwraca to taki wynik
: [/] [] ()
[root@NND_Server swiety]# ./test
pierwsza zmienna: dupa jasiu +  druga zmienna pierdzi stasiu


O to chodzilo ?

Autor:  pectosol [ niedziela, 1 marca 2009, 12:24 ]
Tytuł: 

nie wiem czy dobrze cię zrozumiałem ale może twój problem rozwiąże zmienna tablicowa.
czyli
: [/] [] ()
#!/bin/bash

#zapisuje tablice
tablica=(element1 element2 element3)

#wyświetla poszczególne elementy tablicy
echo ${tablica[0]}
echo ${tablica[1]}
echo ${tablica[2]}

#wyświetla całą tablice
echo ${tablica[*]}



więcej tutaj
http://www.ournet.pl/kursbasha/vart.html

przy czym nie trzeba od razu delkarować całej tablicy
aby to zrozumieć dam przykład odczytu loadavg
: [/] [] ()
#!/bin/bash
a=(`cat /proc/loadavg`)
echo ${a[0]}
echo ${a[1]}
echo ${a[2]}
echo ${a[*]}



ja często używam takiego rozwiazania do odczytu wybranej kolumny zamiast używać awk

Autor:  viater [ niedziela, 1 marca 2009, 15:07 ]
Tytuł: 

pape pisze:
daj zmienne var1 i var3 przed szablon ;)

No właśnie problem w tym, że nie mogę :evil:

pectosol: znam implementację tablic w bashu, jednak w tym przypadku na nic one.

Dzięki wszystkim za zainteresowanie, problem rozwiązałem - aczkolwiek z lekka "na około" ale może być ;)

Strona 1 z 1 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/