告诉我找不到该文件"/>
[我正在尝试使用nodejs在sh中执行文件,但控制台告诉我找不到该文件
这是我在互联网上找到的代码:
const { exec } = require('child_process');
var yourscript = exec('sh launch.sh', (error, stdout, stderr) => {
console.log(stdout);
console.log(stderr);
if (error !== null) {
console.log(`exec error: ${error}`);
}
});
这是我的sh文件,与我之前的代码在同一文件中:
echo "Hi There!"
但是每次我运行程序时,控制台都会向我显示:
exec error: Error: Command failed: sh launch.sh
sh: 0: Can't open launch.sh
有人可以帮我提供我的代码吗?
回答如下:首先,您似乎遇到了文件权限问题,因此,为解决此问题,请先为用户设置文件权限,因为用户需要执行权限:
chmod 755 launch.sh
其次,您在网上找到的代码正在使用“ exec”,现在已弃用了“ exec”,而推荐使用内置的child_process.execFile。因此,对于您的需求,代码将类似于:
var child_process = require('child_process');
child_process.exec('sh launch.sh', function(error, stdout, stderr){
console.log(stdout);
});
这应该有助于入门!内部命令sh launch.sh
应该可以直接在命令行中执行,因此无需运行主主机或nodejs脚本即可进行测试!在CLI中键入命令,然后按Enter!除了调用sh launch.sh
以外,请执行/bin/sh launch.sh
当然,您可能希望查看文档来改进实现并完全理解操作系统下的文件permissions
,sh
的含义,最后是child_process.exec。
https://www.linux/tutorials/understanding-linux-file-permissions
https://en.wikipedia/wiki/Bourne_shell
https://nodejs/api/child_process.html
更多推荐
[我正在尝试使用nodejs在sh中执行文件,但控制台告诉我找不到该文件
发布评论