Я использую пакет node-cmd для выполнения команд bash и использования вывода в моей программе.
Это прекрасно работает для большинства команд, за исключением команды compgen-c, которая возвращает ошибку: stderr возвращает: /bin /sh: 1: compgen: not found
err возвращает: {"kill": false, "code": 127, "signal": null, "cmd": "compgen -c"}
Это мой код:
router.get('/commands', (req, res) => {
cmd.get('compgen -c',function(err, data, stderr)
{res.send(data)}
Ожидаемый результат: список всех команд Linux на моей коробке Lubuntu.
Теперь, если я запускаю 'compgen -c' в терминале, он выполняется нормально и выводит все 2227 команд Linux. Код ошибки Linux 127 означает (насколько я знаю) "Команда не найдена". Приведенный выше код работает безупречно с другими командами, такими как "ls" и т.д.
Я предполагаю, что compgen ведет себя немного иначе, чем обычные команды. Например: whereis compgen возвращает (терминал): пусто, в то время как ожидается, что он вернет местоположение двоичного файла.
Мой вопрос: как получить вывод compgen -c в мой скрипт узла? Моя цель - получить список всех команд Linux.
Любая помощь приветствуется.