Zrozumienie 2> i 1 w Bash a początkujący przewodnik
- 2854
- 122
- Maria Piwowarczyk
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 11 | polecenie 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” FI123456 | #!/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.
- « Praktyczne przykłady przetwarzania JSON z JQ w Linux
- Top 10 poleceń JQ, każdy programista Linux powinien wiedzieć »