[我正在尝试使用nodejs在sh中执行文件,但控制台告诉我找不到该文件

编程入门 行业动态 更新时间:2024-10-09 16:23:46

[我正在尝试使用nodejs在sh中执行文件,但控制台<a href=https://www.elefans.com/category/jswz/34/1771394.html style=告诉我找不到该文件"/>

[我正在尝试使用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

当然,您可能希望查看文档来改进实现并完全理解操作系统下的文件permissionssh的含义,最后是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中执行文件,但控制台告诉我找不到该文件

本文发布于:2024-05-07 01:52:57,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1754080.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:告诉我   找不到   控制台   该文件   执行文件

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!