Closed4

zxをさわってみる

rutamu30rutamu30

zxとは

JavaScriptでシェルスクリプトのように書けるNodeJSツール。
https://github.com/google/zx

#!/usr/bin/env zx

await $`cat package.json | grep name`

let branch = await $`git branch --show-current`
await $`dep deploy --branch=${branch}`

await Promise.all([
  $`sleep 1; echo 1`,
  $`sleep 2; echo 2`,
  $`sleep 3; echo 3`,
])

let name = 'foo bar'
await $`mkdir /tmp/${name}`

引用: https://github.com/google/zx#-zx

rutamu30rutamu30

使い方

拡張子が.mjsのファイル(例: myscript.mjs)でスクリプトを作って、

npx zx myscript.mjs

or
(npm >= 7の環境)

npm exec zx myscript.mjs
rutamu30rutamu30

$.verboseがデフォルトtrueとなっていて、これがtrueの場合コマンドの実行結果を自動的にzxが標準出力へ出力する。出力したくない場合は$.verbose = false; をしておく

https://github.com/google/zx#verbose

rutamu30rutamu30

$commandの返り値はProcessOutput型。文字列への変換には.toString()が必要
Template literalの中で使う分には.toString()が暗黙に実行されるので必要なし。

このスクラップは2021/05/15にクローズされました