Skocz do zawartości
_micha_

linux i skrypty

Rekomendowane odpowiedzi

Witam

 

Troche glupia sprawa, ale dopiero zaczynam sie bawic w linuxie i prosze o pomoc. Otoz pisze sobie skrypcik, ktory w petli while read liczy sobie cos i zapamietuje w zmiennej. I teraz mam problem, bo po wyjsciu z petli skrypt nie pamieta wartosci tej zmiennej (tak jakby byla lokalna w tej petli). Jak wyeksportowac wartosc tej zmiennej ?

 

Z gory dziekuje za kazda podpowiedz :)

Pozdrawiam

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wartosc zmiennej powinna byc osiagalna poprzez dodanie $ przed jej nazwa w obrebie jednego skryptu. Polecenie export pozwala na wyeksportowanie danej zmiennej jako zmiennej srodowiskowej. Wtedy bedzie widzialna przez wszystkie skrypty i programy dzialajace w danej sesji uzyszkodnika.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ale ja nie chce jej wyeksportowac na zewnatrz, bo nie ma takiej potrzeby zeby byla widziana przez wszystkie inne skrypty i system :) Chcialbym po prostu zeby byla widziana po wyjsciu z petli, wyglada to tak:

 

lastline="\0"

l=0

cat $1 | sort | while read line; do

if [ $line ] ; then

if ! [ $line == $lastline ] ; then

l=`expr $l + 1`

fi

lastline=$line

fi

echo $l # tutaj pokazuje dobre wartosci

done

echo $l # a tu juz 0 :(

 

PS. Czy w tym przypadku trzeba uzyc komendy export ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

http://www.tldp.org/LDP/abs/html/loopcontrol.html - zerknij na pierwszy przyklad. Tam tez jest petla while zliczajaca cos. Tutaj widac caly czas wartosc zmiennej kontrolnej, wiec najpewniej to jakis blad w sztuce. Niestety nie mam pomyslu poki co. Musze wstac, zjesc cos i dojsc do siebie :-)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ale moja petla tez wszystko ladnie zlicza - sama petla dziala w porzadku. Chodzi mi tylko o to, ze po wyjsciu z petli zmienna l ma wartosc taka jak przed wejsciem (ewidentnie wyglada mi to na zachowanie zmiennej lokalnej). Jak w zwiazku z tym zdefiniowac zmienna globalna dla danego skryptu?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...