node.js - NodeJs Child_Process.exec 找不到命令
问题描述
我在 npm 中使用 mz/child_process 来获取有关 ARP 表的信息,这适用于 macOS,所以我在我的 MacBook 中使用 Ubuntu 18.04 LTS 虚拟机,所以测试命令。
var cp = require('mz/child_process')
cp.exec('arp -a').then(function (stdout) {
console.log(stdout)
})
我不得不手动安装arp
sudo apt-get install net-tools
但是当我cp.exec('arp -a')
在 Ubuntu 中这样做时,我得到:
错误:/bin/sh:1:arp:未找到
路径没问题,在控制台中我可以arp -a
毫无问题地运行,并且在哪里也没问题arp
,所以我不知道是什么问题。
解决方案
如果您正在查找 NAME 命令并收到错误:
bash:命令名称:找不到命令
这仅意味着arp
未安装包含可执行文件的相关软件包 net-tools,因此丢失。默认情况下,该软件包net-tools
可能未安装在您的系统上,因此您需要手动安装它。
该软件包还包括其他实用程序,例如arp, ifconfig, netstat, rarp, nameif and route
.
可能是您的 shell 是/bin/sh
,但 net-tools 包将其初始化放入~/.bashrc
,并期望/bin/bash
.
您需要获取arp
初始化脚本以从非交互式 bash shell 运行命令。
推荐阅读
- android - 与 CoordinatorLayout 交互和滚动时,如何让 ExtendedFloatingActionButton 的行为类似于 FloatingActionButton?
- xamarin.ios - 此应用无法安装在 iOS 模拟器上,无法硬链接复制
- typescript - 打字稿动态可见的类方法
- asp.net - ASPX 文件中的 Phantom VB 错误
- android - 在静态类中获取活动
- sql - SSMS 有子句没有返回预期的结果
- r - 通过分解另一个变量在 R 中创建新变量
- php - 不使用 getenv() 获取所有环境变量
- r - 如何在边距内移动/对齐R中的饼图
- intellij-idea - 通过 Intellij IDEA 创建的文件不显示在窗口的文件系统上