Ausführen von bash-Befehl in Node.js und erhalten Sie exit-code
Ich einen bash-Befehl in node.js etwa so:
var sys = require('sys')
var exec = require('child_process').exec;
function puts(error, stdout, stderr) { sys.puts(stdout) }
exec("ls -la", function(err, stdout, stderr) {
console.log(stdout);
});
Wie bekomme ich den exit-code des Befehls (ls -la
in diesem Beispiel)? Ich habe versucht, läuft
exec("ls -la", function(err, stdout, stderr) {
exec("echo $?", function(err, stdout, stderr) {
console.log(stdout);
});
});
Diese irgendwie gibt immer 0 zurück, unabhängig von der exit-code des vorherigen Befehls obwohl. Was bin ich?
Ihr erstes Beispiel ist bereits geben Sie die Standardausgabe in der Konsole.melden
InformationsquelleAutor mbacvanski | 2016-06-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese 2 Befehle ausgeführt werden, die in separaten Schalen.
Um den code zu erhalten, sollten Sie in der Lage sein zu überprüfen
err.code
in Ihren Rückruf.Wenn das nicht funktioniert, müssen Sie einen
exit
event-handlerz.B.
exit
event-handler funktioniert Super;err.code
gibt nur eine Zahl, wenn der Fehlercode nicht 0 ist.Auch
execSync(command[, options])
für diejenigen, die interessiert in der synchron-version. nodejs.org/api/...InformationsquelleAutor Joe
Aus der docs:
Also:
Funktionieren sollte.
InformationsquelleAutor andlrc
In Knoten-Dokumentation fand ich diese Informationen für die callback-Funktion:
Auf Erfolg, Fehler wird null sein. Auf Fehler, Fehler wird eine Instanz des Fehlers. Der Fehler.code-Eigenschaft wird der exit-code der Kind-Prozess während Fehler.signal wird gesetzt, um das signal, das beendet den Prozess. Jedem exit-code ungleich 0 gilt als Fehler.
InformationsquelleAutor Borja Tur