Jak przekierować STDDERR do Stdout w Bash

Jak przekierować STDDERR do Stdout w Bash
Polecenia w Linux pobierają pewne dane wejściowe od użytkownika, które mogą być plikiem lub dowolnym atrybutem, a po wykonaniu dają pewne dane wyjściowe o nazwie standardowe wyjście. Standardowe wyjście może być wyjściem sukcesu lub wyjściem błędu; Oba będą wyświetlane na ekranie terminalu. Ale w niektórych przypadkach chcesz przechowywać standardowe wyniki w pliku do testowania lub debugowania kodu. W Linux wyjścia te można przekierować do pliku, a proces przechwytywania go zwany przekierowaniem.

Każdy proces w Linux wytwarza trzy strumienie danych, „stdin”, „stdout” i „stderr”:

  • stdin: Przyjmuje dane wejściowe od użytkownika za pośrednictwem klawiatury
  • Stdout: Wyświetla wyjście na ekranie
  • Stderr: Pokazuje informacje o błędach na ekranie

Każdy strumień danych ma numeryczny identyfikator:

Identyfikator numeryczny Nazwa
0 stdin
1 Stdout
2 Stderr

Wyjaśnijmy przekierowanie nieco bardziej szczegółami:

Jak przekierować standardowe wyjście i błąd standardowy w Bash:

Aby przekierować standardowe wyjście polecenia, użyjemy „1” z operatorem przekierowania, który jest większy niż znak „>”:

$ ls 1> stdout.tekst

Powyższe polecenie utworzy plik i umieści standardowe dane wyjściowe polecenia „LS” w „StDout.plik txt ”.

Przeczytać „stdout.plik txt ”, użyj:

$ cat stdout.tekst

Możemy również przekierować standardowy błąd do pliku za pomocą polecenia:

$ cat myfile.txt 2> stderr.tekst

Aby obejrzeć „Stderr.plik txt ”, użyj:

$ cat stderr.tekst

Upewnij się, że użyj „2” będzie większy niż znak „>”. Ponieważ nie ma „myfile.plik txt ”W katalogu polecenie„ CAT ”poda błąd, który zostanie dołączony do„ Stderr.plik txt ”.

Te standardowe wyjścia można przekierować również za pomocą jednego polecenia, użyj:

$ ls 1> stdout.txt 2> stderr.tekst

Wyjście polecenia „LS” zostanie napisane w „Stdout.tekst”Plik, ale„Stderr.tekst„Pozostanie pusty, ponieważ nie byłoby błędu.

Teraz zróbmy „Stderr.tekst":

$ cat myfile.txt 1> stdout.txt 2> stderr.tekst

Użyj poniżej wspomnianego polecenia, aby przeczytać „Stderr.tekst."

$ cat stderr.tekst

I oczywiście „stdout.txt ”będzie pusty.

Wniosek:

Polecenie Linux po wykonaniu daje standardowe wyjście, które może być wyjściem sukcesu lub wyjściem błędu. Zasadniczo tych wyjść nie można przekierować za pomocą operatorów przekierowania; Musimy użyć określonych identyfikatorów numerycznych ze znakiem „>”. W tym przewodniku nauczyliśmy się używać tych klawiszy numerycznych do przekierowania standardowego wyjścia do pliku z przykładami.