Если произошла ошибка, выполняемая ifconfig eth0
, тогда в stdout
не будет значения. Например, моя машина фактически не имеет интерфейса с именем eth0
, поэтому ничего не возвращается в stdout
.
Попробуйте ввести ifconfig eth0
вручную, чтобы узнать, что произойдет. Вы также можете изменить свой код так:
var a='',b='';
var util = require('util'),
exec = require('child_process').exec,
child;
child = exec('ifconfig eth0',
function (error, stdout, stderr) {
a=stdout.toString();
b=stderr.toString();
console.log(a);
console.log(b);
})
В качестве альтернативы, возможно, вы имеете в виду, что на самом деле console.log
лог выводится на консоль, но переменная a
то, как представляется, быть пустым?
Если это так, убедитесь, что вы обращаетесь к a
в нужное время. Просто попробуйте прочитать a
после того, как последняя строка кода, который вы опубликовали, не будет работать, поскольку обратный вызов, который устанавливает a=stdout.toString()
, еще не запущен.
Вы можете отметить свой собственный пост как ответ, это прекрасно. –