Kiedy uruchamiam niektóre programy z wiersza poleceń, takie jak Eclipse i przeglądarka dokumentów w 11.10, wyrzuca mnóstwo informacji, które wydają się nieistotne.
Również gdy są uruchamiane w tle, czasami kontynuują wytwarzanie danych wyjściowych na terminalu, nad którym obecnie pracuję, co jest irytujące.
Chciałbym, aby po prostu uruchomili i trzymali elementy tła w tle. Moje rozumowanie jest takie, że jeśli uruchamiasz te programy za pomocą GUI (np. Dwukrotne kliknięcie ikony), te wiadomości nigdy nie są mi pokazywane, więc nie potrzebuję ich w wierszu poleceń.
command-line
Anake
źródło
źródło
Odpowiedzi:
Jeśli możesz uniknąć pisania rzeczy w konsoli, zależy to od sposobu tworzenia danych wyjściowych z programu. Jeśli jest przesyłany strumieniowo do standardowego wyjścia, wystarczy to zrobić
i nie należy generować żadnych wyników.
Aby ukryć również komunikaty o błędach:
Lub w skrócie, po prostu:
Ale jeśli zrobią to inaczej, może być problem z zatrzymaniem pisania w konsoli.
jeśli to możliwe, skorzystaj z rozwiązania podanego przez MuffinStateWide
źródło
eclipse 2&>1 >/dev/null
pozbyćstderr
. Domyślnie przekierowuje tylkostdout
. I nie ma „innego” sposobu, aby to zrobić, jeśli wyczyścisz stdout i stderr do pustki, nie będzie żadnych wyników.eclipse &> /dev/null
. Łapie zarówno stdin, jak i stderr do punktu przekierowania (w bash)Możesz utworzyć funkcję bash, która spowoduje alias nazwy polecenia i doda dodatkową funkcjonalność, aby osiągnąć to, o co prosisz.
Na przykład: powiedzmy, że chcesz uruchomić
gvim
(edytor tekstu GUI) z wiersza poleceń.możesz napisać taką funkcję:
(dodaj tę funkcję do pliku
.bashrc
lub.bash_aliases
pliku, aby zawsze była ładowana)Wyjaśnienie:
spowoduje to alias
gvim
polecenia z nazwą funkcji bashgvim
(więc gdygvim
napiszesz w linii poleceń bash, wywoła twojągvim
funkcję, a nie wykonaniegvim
polecenia rzeczywistego . Twoja funkcja następnie wywołuje prawdziwegvim
polecenie (i akceptuje jego regularne argumenty), z niektóre dodane funkcje:/dev/null
(pomija wyjście do terminala)&
do uruchomienia polecenia w tle (aby twoja powłoka nie była zablokowana)disown
do usuwania zadania w tle z powłoki (aby nie pojawiło się na liście aktywnych zadań)nohup
do odłączenia procesu od terminala (abyś mógł zakończyć sesję powłoki lub zamknąć terminal bez zabijania procesu)źródło
spróbuj dodać --help jako przełącznik poleceń i poszukaj „quiet”, to powinno powstrzymać dane wyjściowe lub po prostu uruchomić z GUI. i uruchom za pomocą przełącznika lub znajdź sposób, aby go wyłączyć za pomocą skryptu
osobiście uruchamiam z cli, aby uzyskać ten wynik, więc nie jestem pewien, czy jest to możliwe we wszystkich aplikacjach GUI.
źródło