gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 23:47:54 24 4
gpt4 key购买 nike

这是我在互联网上找到的代码:

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 应该可以在命令行中直接执行,因此无需运行主主机或 Nodejs 脚本即可进行测试!在 CLI 中输入命令并按 Enter 键!或者调用 sh launch.sh 执行 /bin/sh launch.sh

当然,您可能需要查看文档来改进实现并充分了解操作系统下的文件权限sh 的含义以及最后的child_process.exec。

https://www.linux.com/tutorials/understanding-linux-file-permissions

https://en.wikipedia.org/wiki/Bourne_shell

https://nodejs.org/api/child_process.html

关于javascript - 我正在尝试使用 nodejs 在 sh 中执行文件,但控制台告诉我找不到该文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60358479/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com