</dev/null
Trennt den Programmeingang vom Terminal. Einige Programme reagieren unterschiedlich, je nachdem, an was ihr Standardeingang angeschlossen ist. Mit der Umleitung </dev/null
kann das Programm erkennen, dass seine Eingabe nicht von einem Terminal stammt, und erhält sofort eine Anzeige für das Dateiende, wenn es versucht, von seiner Standardeingabe zu lesen.
Das einsame &
am Ende bewirkt, dass das Programm im Hintergrund ausgeführt wird. Dies bedeutet, dass Sie sofort eine Shell-Eingabeaufforderung zurückerhalten. Ohne das &
würden Sie eine Shell-Eingabeaufforderung erst zurückerhalten, wenn das Programm die Ausführung beendet hat.
Beachten Sie, dass das Standalone &
keine Beziehung zu hat >&
. >&
ist ein Umleitungsoperator (in tcsh, bash und zsh), der sowohl die Standardausgabe des Programms als auch den Standardfehler des Programms auf den nach dem Operator angegebenen Dateinamen umleitet (hier log
).
Mit anderen Worten, was die Shell tut, wenn sie diese Befehlszeile sieht, ist:
- Starten Sie einen Prozess im Hintergrund. Im Hintergrundprozess:
- Verbinden Sie den Standardeingang mit
/dev/null
(dem Nullgerät ).
- Verbinden Sie sowohl die Standardausgabe als auch den Standardfehler mit der aufgerufenen Datei
log
(Erstellen der Datei, falls noch nicht vorhanden, und Abschneiden, falls vorhanden).
- Suchen Sie nach einer ausführbaren Datei, die
java
in der aufgerufen wird $PATH
.
- Führen Sie die Datei mit den 5 Argumente
-cp
, /home/weka.jar
, weka.classifiers.trees.J48
, –t
, train_file`.
Gilles 'SO - hör auf böse zu sein'
quelle