Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我试图用nodejs在sh中执行一个文件,但是控制台告诉我找不到该文件_Javascript_Node.js_Sh - Fatal编程技术网

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