Nodejs 在生成子进程时忽略 cwd

问题描述 投票:0回答:2

我正在尝试使用默认目录生成一个子进程。该进程正在执行并且能够读取参数。但该进程在当前目录中启动,即使我提供 cwd 作为选项。我这样做错了吗?

var spawn = require('child_process').spawn;
var child = spawn("sh",
   ["path_to_file_name", "args"],
   [{cwd:"/some/path/temp"}]
);

我的最终目标是在特定文件夹中执行 bash 脚本,这样它就不会弄乱我的应用程序目录。

节点版本:4.0.0

node.js
2个回答
9
投票

options
是一个对象,而不是数组。

var child = spawn("sh",
   ["path_to_file_name", "args"],
   {cwd:"/some/path/temp"}
);

0
投票

也许可以使用

python-shell
,如果您需要更多执行Python的包装器,它似乎维护良好且易于使用。

https://github.com/extrabacon/python-shell https://www.npmjs.com/package/python-shell

npm install python-shell

import {PythonShell} from 'python-shell';

PythonShell.runString('x=1+1;print(x)', null).then(messages=>{
  console.log('finished');
});
© www.soinside.com 2019 - 2024. All rights reserved.