Ich habe eine Antwort auf Ask Ubuntu bearbeitet , die Folgendes vorschlug
nohup gedit >& /dev/null &
Als sie es tatsächlich meinten
nohup gedit &> /dev/null &
Letzteres leitet sowohl stderr als auch stdout korrekt nach um /dev/null
. Ich hatte damit gerechnet, dass ersteres entweder eine Datei mit dem Namen "" erstellt &
oder eher einen Fehler ausgibt, wie dies in anderen Fällen der Fall ist:
$ echo "foo" >&
bash: syntax error near unexpected token `newline'
Stattdessen scheint es genauso zu funktionieren wie das vorherige, es gedit
erscheint ein Fenster und es wird keine Fehlermeldung ausgegeben.
Ich sollte auch beachten, dass dies Shell-spezifisch ist:
bash
(4.2.45 (1) -release),zsh
(5.0.2),csh
(deb package version: 20110502-2) undtcsh
(6.18.01): Funktioniert wie oben beschrieben, keine Fehlermeldung, keine Dateien erstellt.dash
(0,5,7-3):$ nohup gedit >& /dev/null & $ dash: 2: Syntax error: Bad fd number
ksh
(93u + 2012-08-01): schlägt fehl, aber anscheinend wird ein Prozess gestartet (1223
), obwohl keingedit
Fenster angezeigt wird:$ nohup gedit >& /dev/null & [1] 1223 $ ksh: /dev/null: bad file unit number
fish
(2.0.0):> nohup gedit >& /dev/null & fish: Requested redirection to something that is not a file descriptor /dev/null nohup gedit >& /dev/null & ^
Warum wird dieser Befehl in einigen Shells einfach ohne Fehler (und ohne erstellte Ausgabedatei) ausgeführt und in anderen schlägt er fehl? Was >&
macht man in dem scheinbar besonderen Fall von nohup
? Ich vermute, dass >& /dev/null
dies so interpretiert wird, >&/dev/null
aber warum verursacht der Raum in diesen Shells keinen Fehler?
nohup command
, Laufen unabhängig tty Ihre application.According zu meinem Gedächtnis, dash
verlängert von ash
, Debian ash
, ash
entwickelt von OpenBSD
und es ist begrenzt Panzer, auch Maemo OS (Debian Base auf n900 Handy) verwendet dash, ash
Familie Shell haben begrenzte Nutzung von bash oder tcsh erwarten.
dash
Version ausdrucken kann, aber das Paket ist 0.5.7-3
, was ist deins? Bist du dir auch sicher, dass du rennst dash
? Das ist Ubuntus Standard, sh
nicht wahr?
nohup
, meine Frage ist, warum das >&
mit nohup alleine in einigen Shells zu funktionieren scheint.
dash
.