Temat: Strumienie danych i potoki.
Łączenie poleceń
Używając symbolu „ ; ” możemy zamiast wpisywać kilka poleceń po kolei wpisać je w jednej linii, a one zostaną wykonane jedno po drugim (bezwarunkowo):
Składnia polecenie1 ; polecenie2
Przykład: ./configure ; make ; make install
Stan wykonania
Po wykonaniu, każdy program zwraca wartość stanu wykonania (status). Jeżeli ta wartość jest równa zeru – program zakończył się sukcesem. W przypadku błędu – zwracana jest wartość różna od zera. Zależnie od programu – różne wartości wskazują na różne błędy (są kodami błędu).
Aby zobaczyć wartość stanu ostatniego polecenia wystarczy użyć polecenia: echo $?
Zwracany kod może być użyty jako wyzwalacz wykonania innego polecenia:
Wiązanie | Wynik |
---|---|
Polecenie1 && polecenie2 | Polecenie 2 zostanie wykonane tylko wtedy, gdy polecenie1 zakończy się bezbłędnie |
Polecenie1 || polecenie2 | Polecenie 2 zostanie wykonane tylko wtedy, gdy polecenie1 zakończy się z błędem |
Warunkowe łączenie – przykłady
Update i instalacja programu mc:
apt-get update && apt-get install mc
Zabicie programu o PID=386:
kill -15 386 || kill -9 386
Strumienie
Każdy uruchomiony w systemie Linux proces pobiera dane przetwarza i wysyła wyniki ewentualnie wyniki o błędach. Linux wszystko traktuje jako pliki. Dane przesyłane są między urządzeniami w postaci strumienia.
W linux wyróżniamy:
Standardowe wejście – stdin – 0 – z którego proces pobiera dane (domyślnie klawiatura).
Operatory przekierowania:
< - przekierowanie zawartości pliku na standardowe wejście
> - przekierowanie strumienia danych na standardowe wyjście
>> - przekierowanie strumienia danych ze standardowego wyjścia do pliku z dopisaniem danych
2> - przekierowanie strumienia błędów do pliku