J'ai édité une réponse sur Ask Ubuntu qui suggérait ce qui suit
nohup gedit >& /dev/null &
Quand ils voulaient dire
nohup gedit &> /dev/null &
Ce dernier redirige correctement stderr et stdout vers /dev/null
. Je m'attendais à ce que le premier crée un fichier appelé &
ou, plus probablement, produise une erreur comme il le fait pour d'autres cas:
$ echo "foo" >&
bash: syntax error near unexpected token `newline'
Au lieu de cela, il semble fonctionner exactement de la même manière que le premier, une gedit
fenêtre apparaît et aucun message d'erreur n'est imprimé.
Je dois également noter que cela est spécifique au shell:
bash
(4.2.45 (1) -release),zsh
(5.0.2),csh
(version du paquet deb: 20110502-2) ettcsh
(6.18.01): fonctionne comme décrit ci-dessus, aucun message d'erreur, aucun fichier créé.dash
(0.5.7-3):$ nohup gedit >& /dev/null & $ dash: 2: Syntax error: Bad fd number
ksh
(93u + 2012-08-01): échoue, mais un processus est apparemment démarré (1223
) bien qu'aucunegedit
fenêtre n'apparaisse:$ 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 & ^
Alors, pourquoi cette commande s'exécute-t-elle simplement sans erreur (et sans fichier de sortie créé) dans certains shells et échoue dans d'autres? Que >&
fait-on dans le cas apparemment spécial de nohup
? Je suppose que cela >& /dev/null
est interprété comme >&/dev/null
mais pourquoi l'espace ne provoque-t-il pas une erreur dans ces coquilles?
nohup command
, Exécutez votre TTY indépendante application.According à ma mémoire, dash
prolongée ash
, Debian ash
, ash
développé par OpenBSD
et il est shell limitée, même OS Maemo (Debian base sur N900 mobile) utilise tableau de bord, ash
coquille de famille ont une utilisation limitée attendent de bash ou tcsh.
dash
imprimer ma version, mais le package est 0.5.7-3
, quel est le vôtre? De plus, êtes-vous sûr de courir dash
? C'est le défaut d'Ubuntu, sh
n'est-ce pas?
nohup
ça fait, ma question est pourquoi le >&
semble fonctionner avec nohup seul dans certains shells.
dash
.