Zrozumienie 2> i 1 w Bash a początkujący przewodnik

Zrozumienie 2> i 1 w Bash a początkujący przewodnik

Bash to popularna powłoka używana w większości dystrybucji Linuksa. Zapewnia różne techniki przekierowania we/wy, które pozwalają użytkownikom kontrolować sposób przetwarzania danych wejściowych i wyjściowych w ich poleceniach i skryptach. Jedną z najczęściej stosowanych technik przekierowania we/wy jest 2> i 1, który przekierowuje błąd standardowy (STDERR) do standardowego wyjścia (stdout).

W tym artykule zapewnimy przewodnik dla początkujących po zrozumieniu 2> i 1 w Bash.

Co to jest 2> i 1?

2> i 1 to operator przekierowania we/wy używany w Bash, który przekierowuje strumień STDERR do tego samego miejsca docelowego, co strumień stdout. Innymi słowy, łączy wyjście błędu ze zwykłym wyjściem, co ułatwia przechwytywanie i obsługę błędów.

Składnia do używania 2> i 1 następująco:

polecenie 2> i 1
1polecenie 2> i 1

W tej składni, 'Komenda' to polecenie, które jest wykonywane i „2> i 1” to operator przekierowania we/wy, który przekierowuje STDDERR do stdout.

Dlaczego warto używać 2> i 1?

Za pomocą 2> i 1 jest przydatny do przechwytywania i obsługi błędów w skryptach Bash. Przekierując STDDERR do STDOUT, możesz przechwycić zarówno regularne wyjście, jak i błędy wyjściowe w jednym strumieniu, co ułatwia analizę i obsługę błędów. Może to być szczególnie przydatne w skryptach, które wymagają obsługi błędów, w których należy wiedzieć, czy polecenie pomyślnie wykonało lub napotkało błąd.

Przykładowe użycie

Oto przykład, jak używać 2> i 1 W skrypcie Bash:

#!/bin /bash ls /not_a_directory> /dev /null 2> i 1, jeśli [$? -ne 0]; następnie echo „błąd: nie znaleziono katalogu” FI
123456#!/bin /bash ls /not_a_directory> /dev /null 2> i 1if [$? -ne 0]; następnie echo „błąd: nie znaleziono katalogu” FI

W tym przykładzie „ls” Polecenie jest wykonywane w nieistniejącym katalogu „/not_a_directory”. Wyjście tego polecenia jest przekierowane „/dev/null”, który to odrzuca. Stderr Wyjście jest przekierowywane do stdout za pomocą 2> i 1, co pozwala na przechwytywanie w instrukcji IF. Jeśli status wyjścia ($?) polecenia nie jest równe 0, wydrukowany jest komunikat o błędzie.

Wniosek

Podsumowując, 2> i 1 jest operatorem przekierowania we/wy stosowanego w Bash, który przekierowuje Stderr Do Stdout. Jest to przydatne do przechwytywania i obsługi błędów w skryptach Bash, w których należy wiedzieć, czy polecenie wykonane lub napotkało błąd. Scalając wyjście błędu z regularnym wyjściem, ułatwia analizę i obsługę błędów. Zrozumienie podstaw 2> i 1 jest niezbędny dla każdego, kto pracuje ze skryptami i poleceniami Bash.