1

Я использую пакет 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.

Любая помощь приветствуется.

0