[USER@SERVER ~] sleep 3 &
[1] 5232
[USER@SERVER ~]
[1]+ Done sleep 3
[USER@SERVER ~]
Wie kann ich diese beiden Nachrichten / dev / null machen ?:
[1] 5232
[1]+ Done sleep 3
ps: also ich brauche die ausgabe des prozesses, aber nicht die beiden genannten zeilen!
Antworten:
Es handelt sich nicht um die Programmausgabe, sondern um nützliche Shell-Informationen.
Diese können jedoch mithilfe von Subshell und Ausgabeumleitung ausgeblendet werden
quelle
In bash oder zsh können Sie anrufen
disown %1
, um der Shell mitzuteilen, dass sie den Job vergessen soll. Dann druckt die Shell keine Nachricht über diesen Job und zeigt sie auch nicht an, wenn Siejobs
einen SIGHUP ausführen oder jemals an ihn senden. In zsh ist das Starten des Jobs mit&!
statt&
gleichbedeutend mit demdisown
sofortigen Aufrufen .quelle
Ich kann @Gilles (noch) nicht kommentieren, aber es scheint, dass dies
& disown
auch in bash funktioniert:quelle
Versuchen:
Und Sie haben sowohl den Ausgang als auch die PID ausgeblendet . Beachten Sie, dass Sie die PID immer noch aus $ REPLY abrufen können
quelle