【发布时间】:2016-01-02 08:01:39
【问题描述】:
child process api 可用于在 node.js 中执行 shell 脚本。
我正在使用 child_process.exec(command[, options], callback) 函数
作为一个选项,exec 的用户可以设置 shell: '/path/to/shell' 字段来选择要使用的 shell。 (默认为“/bin/sh”)
将选项设置为 {shell: '/bin/bash'} 不会使 exec 使用 bash 运行命令。
我已通过发出打印“/bin/sh”的命令“echo $0”验证了这一点。
如何通过 shell 选项将 bash 与 child_process.exec 一起使用?
(我的目标是在 bashrc 中使用我的路径定义,现在当我尝试使用 grunt 时找不到二进制文件。设置 cwd,选项字典中的当前工作目录按预期工作)
----------------- 更新,示例
'use strict';
var cp = require('child_process');
cp.exec('echo $0', { shell: '/bin/bash' }, function(err, stdout, stderr){
if(err){
console.log(err);
console.log(stderr);
}
console.log(stdout);
});
输出:
/bin/sh
which bash
打印: /bin/bash
【问题讨论】: