Сaptured Output из runShellCommand возвращает пустую строку

Есть правило:
defineRule(“balance_mb_check”, {
when: cron("@every 30m"),
then: function () {
runShellCommand(“gammu getussd ‘*112#’| grep -oP ‘:.\K(\d+)(?= MB)’”, {
captureOutput: true,
exitCallback: function (exitCode, capturedOutput) {
log(“Internet: {} MB”, capturedOutput);
if (capturedOutput != “”) {
dev[“interfaces”][“Internet”] = capturedOutput;
}
}
});
}
});
Оно всегда возвращает пустую строку. Если запускать из консоли - все ок. В чем проблема?

Мне кажется, у вас строка команды содержит какие-нибудь хитрые символы, которые где-нибудь неверно интерпретируются (например, апострофы), и в итоге выполняется не та команда, которая планируется.
Попробуйте:

  1. Проверить, что capturedOutput и логика вокруг него у вас работают на какой-нибудь простой команде (например, echo 123).
  2. После этого постепенно усложняйте свою команду, и поймите, из-за какого символа возникают проблемы.