child_process.exec()
を使用してNode.js経由でbashスクリプトを実行しようとしています。しかし、それはファイルの2行目に吹いている:Node.js経由のbashスクリプトの実行 - 不正なオプション-o pipefail
#!/usr/bin/env bash
set -eo pipefail; [[ $TRACE ]] && set -x
echo "we are here"
エラーが返されます。
/bin/sh: 2: set: Illegal option -o pipefail
ですが、なぜでしょうか?ノードからではなくスクリプトを手動で実行すると正常に動作します。ここではNode.jsのコードは次のとおりです。
var child = child_proc.exec(bashScript, {
env: _.extend(process.env, {
'LB_HOST': config.loadBalancers.lb1
}),
timeout: 0
});
child.stdout.pipe(process.stdout);
child.stderr.pipe(process.stderr);
シェルのデフォルトを'https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callbackによると、それが理由でしょうか? –