Wpis z mikrobloga

#linux #bash

while [ "cat plik.txt | grep -oh "\w*ERROR\w*"" = "ERROR" ]
do
echo "whatever"
done

I tu pojawia się problem... jak zrobić, żeby wynik polecenia cat plik.txt i tak się wyświetlał na ekranie? Z tee jakby próbowałem, ale to nie powinno działać, bo i tak wyświetli do polecenia while. Może tee - coś standardowe wyjście, albo coś innego...
  • 21
sprawdza plik.txt na obecność słowa ERROR w pętli. Jak znajdzie to pętla jest kontynuowana, a jak nie to przerywa.


@grappas: Nie, nie robi tego.

Zobacz sobie co masz w kwadratowych nawiasach, potem puść to w terminalu bez cudzysłowów:

cat plik.txt | grep -oh "\w*ERROR\w*"" = "ERROR
@guziec_z_afryki: O Boże... Skrypt działa jak ma działać wszystko poprawnie. Cudzysłowia mają być, ponieważ ma przerabiać standardowe wyjście na stringi inaczej nie da się porównywać w pętli while ( i nie tylko). Chcę dodać funkcjonalność do skryptu taką, żeby zamiast tylko przekazywać wyjście do polecenia while, to żeby dodatkowo robił kopię wyjścia na standardowe wyjście. Być może nie zwróciłeś uwagi, że wykop przerabia odwrócone apostrofy jako znacznik {kod}, a oznaczają
@BArtus:
echo "ERROR" > p.txt
while [ "cat p.txt" = "ERROR" ]
do
echo "nic" > p.txt
cat plik.txt | tee >(grep -oh "\w*ERROR\w*" > p.txt)
sleep 5
done

to działa. Ale jakby nie trzeba było do p.txt zapisywać tylko do zmiennej...( ͡° ʖ̯ ͡°)
O Boże... Skrypt działa jak ma działać wszystko poprawnie. Cudzysłowia mają być, ponieważ ma przerabiać standardowe wyjście na stringi inaczej nie da się porównywać w pętli while ( i nie tylko). Chcę dodać funkcjonalność do skryptu taką, żeby zamiast tylko przekazywać wyjście do polecenia while, to żeby dodatkowo robił kopię wyjścia na standardowe wyjście. Być może nie zwróciłeś uwagi, że wykop przerabia odwrócone apostrofy jako znacznik {kod}, a oznaczają one: wykonaj polecenie,
via Android
  • 0
@guziec_z_afryki > I tu pojawia się problem... jak zrobić, żeby wynik polecenia cat plik.txt i tak się wyświetlał na ekranie? Z tee jakby próbowałem, ale to nie powinno działać, bo i tak wyświetli do polecenia while. Może tee - coś standardowe wyjście, albo coś innego..
Ale czasem chyba zdarza ci się czytać ze zrozumieniem? :)
A potem jeszcze pisałem, że to co kod robi nie jest istotą wywodu...
A teraz się zachowujesz