Obecnie szukam sposobów na ukrycie polecenia błędu w Linuksie, w szczególności polecenia cp
.
Ja robię:
root@ubuntu:~$ cp /srv/ftp/201*/wha*/*.jj ~/.
cp: cannot stat `/srv/ftp/201*/wha*/*.jj': No such file or directory
Jak ukryć komunikat o błędzie, który jest drukowany na ekranie? Nie chcę widzieć tego komunikatu o błędzie na moim monitorze.
Odpowiedzi:
Aby wyłączyć wyświetlanie błędów
bash
, dołącz2>/dev/null
na końcu polecenia. To przekierowuje uchwyt pliku 2 (STDERR) do/dev/null
. Istnieją podobne konstrukcje w innych powłokach, chociaż konkretna konstrukcja może się nieznacznie różnić.źródło
Przekieruj komunikat o błędzie (STDERR) do
/dev/null
:Przykład:
źródło
Twoje pytanie nie jest jasne. Najrozsądniejszym rozwiązaniem byłoby wcale nie uruchamiać
cp
się, gdy symbol wieloznaczny nie pasuje do żadnego pliku, zamiast uruchamiaćcp
i ukrywać komunikat o błędzie.Aby to zrobić, jeśli powłoka jest bash, ustaw tę
nullglob
opcję, aby wzorzec wieloznaczny rozwinął się do zera, jeśli nie pasuje do żadnego pliku. Następnie sprawdź, czy wzorzec rozwinął się do czegokolwiek i nie wywołujcp
w tym przypadku.Zwykle sprawdź, czy glob nie został zmieniony, wskazując na nieistniejący plik.
źródło
Dodaj to w ~ / .bashrc:
następnie:
źródło
stderr
do/dev/null
kiedy wyjście błędu jest niepożądany. Lub używając innej nazwy niżcp
.cp
.można użyć:
1 opcję:
2>/dev/null
.2 opcja:
2>&1
Poza tym możesz użyć tego na końcu polecenia, spowoduje to usunięcie komunikatów o błędach:
Przykład tutaj-
tutaj nie można pobrać żadnych informacji o komunikacie o błędzie. Ex2:
tutaj możesz pobrać informacje z poniższego pliku dziennika:
źródło