Kürzen oder führen Sie mehrere Zeilen von `&> /dev/null &` zusammen.

Kürzen oder führen Sie mehrere Zeilen von `&> /dev/null &` zusammen.

Bei jedem Start der Maschine führe ich das folgende Programm aus:

$ cat start.sh
#! /bin/bash
google-chrome &> /dev/null &
lantern &> /dev/null &
xdg-open . &> /dev/null &
emacs &> /dev/null  &
code ~/Programs/ &> /dev/null &
xdg-open ~/Reference/topic_regex.md &> /dev/null &

Umständlich &> /dev/null &... Wie könnte ich die Logik abkürzen?

Antwort1

Der Teil &> /dev/nullbedeutet Ausgabeumleitung. Sie können mehrere Befehle in dieselbe Datei umleiten, indem Sie sie in einem Block gruppieren:

#! /bin/bash
{
google-chrome &
lantern &
xdg-open . &
emacs  &
code ~/Programs/ &
xdg-open ~/Reference/topic_regex.md &
} &> /dev/null

Dasselbe kann allerdings nicht verwendet werden, um einzelne Befehle im Hintergrund zu starten ( &). Das Einfügen &nach dem Block würde bedeuten, dass der gesamte Block als einzelnes Skript im Hintergrund ausgeführt wird.

Antwort2

Ich habe eine Funktion geschrieben und sie in mein eingefügt, .bashrcum Dinge losgelöst von meinem Terminal auszuführen:

detach () 
{ 
    ( "$@" &> /dev/null & )
}

... und dann:

detach google-chrome
detach xdg-open ~/Reference/topic_regex.md

Und weil ich faul bin, habe ich auch eine Abkürzung für Folgendes geschrieben xdg-open:

xo () 
{ 
    for var in "$@"; do
        detach xdg-open "$var";
    done
}

Da xdg-opengenau ein Argument erwartet wird, xoiteriert die Funktion über alle angegebenen Argumente und ruft xdg-openjedes einzeln auf.

Dies ermöglicht:

detach google-chrome
xo . ~/Reference/topic_regex.md

Antwort3

Sie können die Ausgabe für alle nachfolgenden Befehle umleiten mit

exec 1>/dev/null
exec 2>/dev/null

Antwort4

/dev/nullUm die Umleitung zu verkürzen, habe ich eine spezielle Datei mit einem kürzeren Pfad erstellt . /nAls Pfad für die neue Datei habe ich verwendet:

sudo mknod -m 0666 /n c 1 3

So lassen sich die einzelnen Zeilen beispielsweise verkürzen auf:

google-chrome &>/n &

Quelle:Wie erstelle ich /dev/null?

verwandte Informationen