0

我正在使用 shelljs 模块在节点中为服务器端程序执行 bash 文件。我什至尝试过子进程模块来执行 bash 文件。在这两种情况下,我都收到了权限被拒绝错误。我正在使用linux(ubuntu disto)。这是代码片段。

var shell = require("shelljs");
var cp = require("child_process");
shell.exec('../scripts/test.sh');
cp.exec('../scripts/test.sh', (error, stdout, stderr) => {
console.log(stdout);
console.log(stderr);
if (error !== null) {
   console.log(`exec error: ${error}`);
 }
});

这是文件结构。

 |-Parent file
   |-routes
     --file containing the above javascript code
   |-scripts
     --test.sh

这是错误。

/bin/sh: 1: ../scripts/test.sh: Permission denied
/bin/sh: 1: ../scripts/test.sh: Permission denied
 exec error: Error: Command failed: ../scripts/test.sh
/bin/sh: 1: ../scripts/test.sh: Permission denied

谁能建议我为什么会发生此错误以及如何解决?
注意-我没有在 test.sh 中使用任何 sudo 命令。只是一个简单的 echo 命令,例如 echo "Hello World"

4

1 回答 1

0

您需要运行chmod +x ../scripts/test.sh才能授予运行脚本文件的权限。如果失败,请尝试使用 Sudo 运行节点脚本。

于 2022-03-02T00:26:18.453 回答