Trzy strumienie są otwierane po uruchomieniu systemu operacyjnego Linux. To są stdin, stdout i stdderr. Pełna forma stdin jest standardowe wejście, które służy do przyjmowania danych wejściowych od użytkownika. Pełna forma stdout jest standardowym wyjściem, który służy do przechowywania wyjścia polecenia w strumieniu stdout. Pełna forma STDDERR to błąd standardowy, który służy do przechowywania komunikatu o błędzie, który jest generowany z dowolnego polecenia w strumieniu danych. Zastosowania tych strumieni są pokazane w tym samouczku. Odpowiednie wartości numeryczne identyfikatora stdina, stdout i STDERR wynoszą 0, 1 i 2.
Operatorzy przekierowania stdin, stdout i stdderr
Zastosowania stdina, stdout i stdderr
Zastosowania stdina, stdout i stdderr są pokazane w tej części samouczka przy użyciu wielu przykładów.
Przykład 1: użycie stdina
Metoda przyjmowania treści pliku i drukowania go w terminalu jest pokazana w tym przykładzie.
Uruchom następujące polecenie „CAT”, aby utworzyć plik tekstowy o nazwie TestData.TXT z pewną treścią:
$ cat> testData.tekst
Uruchom następujące polecenie „CAT”, aby dołączyć część treści do testData.plik txt:
$ cat >> testData.tekst
Uruchom następujące polecenie „CAT”, aby uzyskać dane wejściowe z testData.plik txt i wydrukuj go w terminalu:
$ cat < testdata.txt
Wyjście:
Pojawi się następujące dane wyjściowe po wykonaniu poprzednich poleceń po dodaniu ciągu „Linuxhint.com ”i„ Język scenariusza ”w testData.plik txt:
Przykład 2: użycie stdout
Metoda tworzenia pliku za pomocą rury (|) i operatora przekierowania jest pokazana w tym przykładzie.
Uruchom następujące polecenie, aby zapisać dane ciągu w pliku tekstowym o nazwie TestData2.txt przez rurociągi. Wyjście polecenia „Echo” jest wysyłane na wejście polecenia „CAT” za pomocą operatora rury (|):
$ echo „Learn Bash Programming” | Cat> TestData2.tekst
Uruchom następujące polecenie „CAT”, aby sprawdzić zawartość testData2.plik txt:
$ CAT TESTDATA2.tekst
Wyjście:
Pojawi się następujące dane wyjściowe po wykonaniu poprzednich poleceń. Zgodnie z wyjściem wyjście polecenia „Echo” jest zapisane do testData2.plik txt:
Uruchom następujące polecenie, aby zapisać dane wyjściowe polecenia „LS -L” w liście o nazwie plik tekstu.TXT za pomocą operatora przekierowania ('>'):
$ ls -l> lista.tekst
Uruchom następujące polecenie „CAT”, aby sprawdzić zawartość listy.plik txt:
Lista $ CAT.tekst
Wyjście:
Pojawi się następujące dane wyjściowe po wykonaniu poprzednich poleceń. Zgodnie z wyjściem, wyjście polecenia „LS -L” jest zapisane na liście.plik txt:
Przykład 3: użycie stdina i stdout
Metoda używania zarówno stdin, jak i stdout do pobrania danych z pliku i zapisania go w pliku jest pokazana w tym przykładzie.
Uruchom następujące polecenie „CAT”, aby wziąć treść testData.plik txt i zapisz go do pliku testowego.plik txt i terminal:
$ cat < testdata.txt > test testowy.tekst
Uruchom następujące polecenie „CAT”, aby wydrukować zawartość TestData.plik txt:
$ CAT TESTDATA.tekst
Uruchom następujące polecenie „CAT”, aby wydrukować zawartość pliku testowego.plik txt:
$ CAT TestFile.tekst
Wyjście:
Pojawi się następujące dane wyjściowe po wykonaniu poprzednich poleceń. Zgodnie z wyjściem zawartość TestData.plik txt jest zapisany w pliku testowym.plik txt i wydrukowany w terminalu:
Przykład 4: Zastosowanie STDERR
Zawartość błędu standardowego można wydrukować w terminalu lub przekierować do pliku lub wysłać do /dev /null, który działa jak kosz na temat recyklingu. W tym przykładzie pokazano różne sposoby przekazywania błędu standardowego.
Poniższe polecenie jest prawidłowe i drukuje ciąg „Hello” z nową linią. Tak więc dla następującego polecenia nie jest generowany żaden błąd standardowy:
$ printf "%s \ n" "hello"
Następujące polecenie jest nieprawidłowe, ponieważ nie ma polecenia o nazwie „pirntf”. Tak więc generowany jest błąd standardowy, a błąd jest wydrukowany w terminalu:
$ pirntf "%s \ n" "hello"
Wyjście:
Pojawi się następujące dane wyjściowe po wykonaniu poprzedniego polecenia. Zgodnie z wyjściem błąd standardowy jest wydrukowany w terminalu:
Czasami wymaga wydrukowania niestandardowego błędu, ukrywając błąd standardowy, aby błąd był bardziej zrozumiały dla użytkowników. To zadanie można wykonać poprzez przekierowanie błędu do /dev /null. „2>” jest tutaj używany do przekierowania błędu do /dev /null.
Uruchom następujące polecenie, aby przekierować błąd do /dev /null, który nie wyświetli żadnego błędu, jeśli istnieje jakikolwiek błąd:
$ pirntf "%s \ n" "hello" 2> /dev /null
Wyjście:
Pojawi się następujące dane wyjściowe po wykonaniu poprzedniego polecenia. Zgodnie z wyjściem błąd standardowy nie jest wydrukowany w terminalu w celu przekierowania do /dev /null:
Czasami błąd standardowy wymaga przechowywania w pliku do przyszłego użycia. To zadanie można wykonać poprzez przekierowanie błędu do pliku za pomocą operatora „2>”.
Uruchom następujące polecenie, aby przekierować błąd standardowy do pliku o nazwie Błąd Plik.tekst:
$ pirntf "%s \ n" "hello" 2> błąd plik.tekst
Uruchom następujące polecenie, aby sprawdzić zawartość pliku błędu.plik txt:
$ CAT Errorfile.tekst
Wyjście:
Pojawi się następujące dane wyjściowe po wykonaniu poprzednich poleceń. Zgodnie z wyjściem błąd standardowy jest prawidłowo zapisywany w pliku błędu.plik txt:
Błąd standardowy można przekierować zarówno do /dev /null, jak i pliku błędu.plik txt za pomocą następującego polecenia:
$ pirntf "%s \ n" "hello" 2> /dev /null> błąd plik.tekst
Wniosek
Zastosowania stdin, stdout i stdderr są wyjaśnione w tym samouczku przy użyciu wielu przykładów, które pomogą użytkownikom Linux w zrozumieniu koncepcji tych strumieni i poprawnie ich użycia w razie potrzeby.