Javascript 我试图用nodejs在sh中执行一个文件,但是控制台告诉我找不到该文件
这是我在互联网上找到的代码:Javascript 我试图用nodejs在sh中执行一个文件,但是控制台告诉我找不到该文件,javascript,node.js,sh,Javascript,Node.js,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}`); } })
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”,现在已被弃用,取而代之的是内置的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
应该可以在命令行中直接执行,因此测试时无需运行主主机或节点脚本!在CLI中键入命令,然后按enter键!调用sh launch.sh
do/bin/sh launch.sh
当然,您可能希望查看文档以改进实现,并充分了解操作系统下的文件权限
,以及sh
的含义,最后了解child_process.exec