Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.



Użytkownik
Witam
Mam plik test.txt a w nim
Jeden dwa Trzy cztery
Jak napisać skrypt w bash, abym miał jako jedną zmienną jedną linijkę.
Mam takie coś:
TEST=`cat test.txt` for I in $TEST; do echo $I; done
ale to nie działa jak trzeba.
Ostatnio edytowany przez djjanek (2011-07-19 13:46:51)
Offline




złodziej wirków ]:->
co prawda nie skrypt a jednolinijkowiec ale chyba dalej sobie poradzisz
winnetou@wigwam /tmp $ cat nic
Jeden dwa
Trzy cztery
winnetou@wigwam /tmp $ cat nic |while read LINE;do echo "linia ${LINE}";done
linia Jeden dwa
linia Trzy czteryalbo tak:
winnetou@wigwam /tmp $ cat nic
Jeden dwa
Trzy cztery
winnetou@wigwam /tmp $ export I=1
winnetou@wigwam /tmp $ cat nic |while read LINE;do echo "linia ${I} ${LINE}"; I=$(($I + 1));done
linia 1 Jeden dwa
linia 2 Trzy czteryOstatnio edytowany przez winnetou (2011-07-19 13:52:58)
Offline



Użytkownik




Użyszkodnik
winnetou napisał(-a):
Kod:
winnetou@wigwam /tmp $ cat nic |while read LINE;do echo "linia ${LINE}";done
Koszernie jest tak:
while read LINE;do echo "linia ${LINE}";done < /tmp/nicPrzy okazji rozwiąże to problem z podmianą wartości zmiennej po zakończeniu pętli (powłoka potok uruchamia jako podpowłokę (subproces), przez co po zakończeniu działania pętli wartość zmiennej jest taka sama jak przed rozpoczęciem pętli).
Offline




złodziej wirków ]:->
Minio - a i owszem może koszerniej ale spotkałem się w swoim krótkim, pseudoskrypciarskim życiu z kilkoma przypadkami gdzie nie bardzo takie coś mi chciało działać - albo wyrzucało jakieś dziwności. Aczkolwiek bywały sytuacje gdzie moja wersja zawodziła a ta koszerna dawała radę. Nie wiem czy ja coś spier^W zepsułem czy to jakiś kolejny *szyzm, w każdym razie wydaje mi się, że najważniejsze jest to iż obie wersje działają a i złożoność czasowa/pamięciowa/obliczeniowa pewnie jest zbliżona.
Offline