# RxRunScript 调用 Node.js child process 执行脚本或者命令行, 输出 `Observable` 可观察对象 [![Version](https://img.shields.io/npm/v/rxrunscript.svg)](https://www.npmjs.com/package/rxrunscript) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT) [![Build Status](https://travis-ci.org/waitingsong/rxrunscript.svg?branch=master)](https://travis-ci.org/waitingsong/rxrunscript) [![Build status](https://ci.appveyor.com/api/projects/status/v5jt9imw2519nsax/branch/master?svg=true)](https://ci.appveyor.com/project/waitingsong/rxrunscript/branch/master) [![Coverage Status](https://coveralls.io/repos/github/waitingsong/rxrunscript/badge.svg?branch=master)](https://coveralls.io/github/waitingsong/rxrunscript?branch=master) ## 安装 ```bash $ npm install rxrunscript ``` ## 使用 ```ts import { OutputRow, run, take } from 'rxrunscript' run('openssl version') .pipe( take(1), // 假定一个 Buffer 就包括了所有输出 ) .subscribe({ next: (row) => { console.log(row.data.toString()), }, error: (err) => { console.error(err), }, }) // exec shell file run('./test/openssl.sh') .subscribe({ next: (row) => console.log(buf.toString()), }) import { reduce } from 'rxjs' // win32 run('tasklist') .pipe( reduce((acc: Buffer[], curr: OutputRow) => { if (typeof curr.exitCode === 'undefined') { acc.push(curr) } return acc }, []), ) .subscribe( arr => console.log(Buffer.concat(arr).toString()), err => console.error(err), ) // 运行 cmd 脚本 run('./test/prepare.cmd') .subscribe( row => console.log(row.data.toString()), ) ``` ## License [MIT](LICENSE) ### Languages - [English](README.md) - [中文](README.zh-CN.md)