Przekierowanie STDERR za pomocą polecenia TEE w Ubuntu

Przekierowanie STDERR za pomocą polecenia TEE w Ubuntu

Polecenie TEE bierze standardowe wejście i wysyła je do jednego lub więcej plików i standardowego wyjścia. Polecenie TEE pochodzi z rur t-splatt. Po prostu rozkłada dane wyjściowe programu, aby można go było pokazać i zapisać w pliku. Wykonuje oba zadania jednocześnie, kopiuje dane wyjściowe do podanych plików lub zmiennych i wyświetla dane wyjściowe.

Składnia:

$ tee [opcje] [plik]

Opcje:

  • -A: dołącz (zamiast zastąpić pliki, dołącz je do istniejących)
  • -I: ignoruj ​​przerwania (zignoruj ​​sygnały, które przerwają)

Pliki: Istnieje wiele plików. Dane wyjściowe są zapisywane do każdego z nich.

Domyślnym deskryptorem pliku procesu pisania komunikatów o błędach jest STDERR, często znany jako błąd standardowy. Błędy standardowe można przekazać do wiersza poleceń w BASH. Ten artykuł dotyczy przekierowania wyjścia z STDERR za pomocą polecenia TEE w różnych scenariuszach.

Przekieruj stderr za pomocą polecenia TEE

Błędy standardowe są przekazywane do wiersza poleceń w BASH. Przekierowanie STDERR może umożliwić przechwytywanie komunikatów o błędach w odrębnym pliku dziennika lub całkowicie wyeliminować komunikaty o błędach. Wyjaśnimy procedurę przekierowania STDDERR za pomocą polecenia TEE z następującymi przykładami.

Krok 1: Utwórz plik bash

Najpierw utwórz plik bash „Linux.sh ”za pomocą następującego polecenia:

$ nano Linux.cii

Krok 2: Napisz kod

Teraz napisz następujący kod w pliku lub możesz napisać coś innego zgodnie z wymogiem:

$ #!/bin/bash
Echo Hello
1> i 2 Echo World

Krok 3: Sprawdź, czy plik Bash działa

Teraz sprawdź, czy plik bash działa poprawnie, czy też zapisany w nim kod jest poprawny, uruchamiając następujące polecenie w terminalu:

$ ./Linux.cii

Wynik dany wynika prawidłowy wynik, który dowodzi, że kod działa poprawnie.

Uruchom kolejne polecenie wspomniane poniżej, aby sprawdzić kod roboczy:

$ ./Linux.sh>/dev/null

Teraz uruchom następujące polecenie, aby sprawdzić działanie kodu:

$ ./Linux.sh 2>/dev/null

Dostaliśmy oczekiwaną wydajność; Oznacza to, że kod jest prawidłowy.

Krok 4: Przekieruj STDDERR do polecenia TEE

> (…) (Zastąpienie procesu) ustanawia FIFO i udostępnia je TEE do słuchania. Następnie zatrudnia> (przekierowanie pliku), aby wysłać stdout polecenia do FIFO, który monitoruje Twoja pierwsza koszulka.

Następujące polecenie przekierowuje STDDERR do koszulki. Przekierowuje wyjście do „/tmp/log”:

$ ./Linux.sh 2 >> (tee /tmp /log)

Teraz wyjdź plik, w którym przekierowaliśmy wyjście.

$ cat /tmp /log

Domyślnie TEE drukuje na stdout. Wydrukuj to do Stderr.

$ (./Linux.sh 2 >> (tee/tmp/log> i 2))>/dev/null

Wniosek

Polecenie TEE odczytuje dane z pliku/plików wejściowych i zapisuje odebrane wyjście do wielu plików. Przekierowanie błędów do STDERR można wykonać za pomocą polecenia TEE. Istnieje wiele sposobów przekierowania wyjścia. Ale w tym artykule opisaliśmy procedurę, za pomocą przykładu, aby przekierować STDDERR do koszulki za pomocą pliku bash i wyświetliliśmy wyjście na Ubuntu (system operacyjny Linux). Ten artykuł będzie pomocny w przekierowaniu STDERR za pomocą polecenia TEE.