Ho modificato una risposta su Ask Ubuntu che suggeriva quanto segue
nohup gedit >& /dev/null &
Quando in realtà intendevano
nohup gedit &> /dev/null &
Quest'ultimo reindirizza correttamente sia stderr che stdout a /dev/null. Mi aspettavo che il primo creasse un file chiamato &o, più probabilmente, generasse un errore come accade per altri casi:
$ echo "foo" >&
bash: syntax error near unexpected token `newline'
Invece, sembra funzionare esattamente allo stesso modo del primo, geditappare una finestra e non viene stampato alcun messaggio di errore.
Dovrei anche notare che questo è specifico della shell:
bash(4.2.45 (1) -release),zsh(5.0.2),csh(versione del pacchetto deb: 20110502-2) etcsh(6.18.01): funziona come descritto sopra, nessun messaggio di errore, nessun file creato.dash(0.5.7-3):$ nohup gedit >& /dev/null & $ dash: 2: Syntax error: Bad fd numberksh(93u + 2012-08-01): non riesce, ma a quanto pare viene avviato un processo (1223) sebbene non vengageditvisualizzata alcuna finestra:$ nohup gedit >& /dev/null & [1] 1223 $ ksh: /dev/null: bad file unit numberfish(2.0.0):> nohup gedit >& /dev/null & fish: Requested redirection to something that is not a file descriptor /dev/null nohup gedit >& /dev/null & ^
Quindi, perché questo comando viene semplicemente eseguito senza errori (e senza file di output creato) in alcune shell e fallisce in altre? Cosa sta >&facendo nel caso apparentemente speciale di nohup? Immagino che >& /dev/nullvenga interpretato come >&/dev/nullma perché lo spazio non causa un errore in queste shell?
nohup command, Eseguire tty indipendente vostra application.According a mia memoria, dashestesa su ash, Debian ash, ashsviluppato da OpenBSDe suo guscio limitata, anche OS Maemo (Debian Base su n900 mobile) utilizza cruscotto, ashguscio famiglia hanno un'utilità limitata si aspettano di bash o tcsh.
dashstampare la sua versione ma il pacchetto è 0.5.7-3, qual è il tuo? Inoltre, sei sicuro di correre dash? Questo è il valore predefinito di Ubuntu, shvero?
nohupfa, la mia domanda è perché >&sembra funzionare con nohup da solo in alcune shell.
dash.