ShellJS - にほんご。

exec()

更新日: 2018-09-11

exec(command [, options] [, callback])

利用可能オプション

async
非同期で実行します。 コールバックが提供された場合、渡された値に関わらずtrueを設定します。 初期値はfalseです。
silent
コンソールに出力しないようにします。 初期値はfalseです。
encoding
文字エンコーディングを指定します。 返されたstdoutとstderrの値と、 silentfalseの場合にstdoutとstderrに書き込まれるものに影響します。 初期値は'utf8'です。
その他
Node.jsのchild_process.exec()で利用可能な任意のオプションを指定することができます。

指定方法

var version = exec('node --version', {silent:true}).stdout;

var child = exec('some_long_running_process', {async:true});
child.stdout.on('data', function(data) {
  /* ... do something with data ... */
});

exec('some_long_running_process', function(code, stdout, stderr) {
  console.log('Exit code:', code);
  console.log('Program output:', stdout);
  console.log('Program stderr:', stderr);
});

特に指定しない限り、commandを同期して実行します。 同期実行している場合、ShellStringを返します。 (ShellJS v0.6.xと互換性があり、{ code:..., stdout:... , stderr:... }というオブジェクト形式で返します。) 非同期で実行している場合、子プロセスのオブジェクトを返し、 callbackは引数として(code, stdout, stderr)を受け取ります。

期待した動作ではないですか? exec()bashとは異なり、 デフォルトでsh(Windowsならcmd.exe)を通して全て実行します。 もしbashと同じ動作が良いなら、{shell: 'path/to/bash'}オプションを試してみてください。


使用例

Node.jsのバージョンを表示します。

JavaScript
var sh = require('shelljs');
var version = sh.exec('node --version').stdout;
結果
$ node sample.js
v7.2.1


© 2012 Artur Adib Released under the BSD License. See LICENSE file for details.

このコンテンツはArtur Adib(arturadib)によるShellJSドキュメントを翻訳/改変したものです。