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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2011-07-19 13:37:18

  djjanek - Użytkownik

djjanek
Użytkownik
Skąd: whereis
Zarejestrowany: 2007-11-15
Serwis

[Solved] skrypt bash

Witam

Mam plik test.txt a w nim

Kod:

Jeden dwa
Trzy cztery

Jak napisać skrypt w bash, abym miał jako jedną zmienną jedną linijkę.

Mam takie coś:

Kod:

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

 

#2  2011-07-19 13:40:56

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: [Solved] skrypt bash

co prawda nie skrypt a jednolinijkowiec ale chyba dalej sobie poradzisz

Kod:

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 cztery

albo tak:

Kod:

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 cztery

Ostatnio edytowany przez winnetou (2011-07-19 13:52:58)


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#3  2011-07-19 13:45:30

  djjanek - Użytkownik

djjanek
Użytkownik
Skąd: whereis
Zarejestrowany: 2007-11-15
Serwis

Re: [Solved] skrypt bash

Dzięki.

Offline

 

#4  2011-07-20 00:50:12

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Poznań, Polska
Zarejestrowany: 2007-12-22
Serwis

Re: [Solved] skrypt bash

winnetou napisał(-a):

Kod:

winnetou@wigwam /tmp $ cat nic |while read LINE;do echo "linia ${LINE}";done

Koszernie jest tak:

Kod:

while read LINE;do echo "linia ${LINE}";done < /tmp/nic

Przy 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

 

#5  2011-07-20 00:56:36

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: [Solved] skrypt bash

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.


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)