GoogleZX-Javascriptを使用したシェルスクリプト

JavascriptとNode.jsを使用してシェルスクリプトを作成する方法

真に普遍的な言語

Node.jsの台頭により、Javascript(および最近ではTypescript)は、あらゆる種類の異なるスクリプトを作成するための著名な言語になりました。すべてのNode.jsインスタンスに含まれているコアライブラリのおかげで、開発者はオペレーティングシステムへのさまざまな呼び出しにもアクセスできます。その強力なランタイムエンジンと組み合わされたJavascriptの柔軟性(メンテナンスのコストはかかりますが)は、現在のサーバー環境で大きなフットプリントを獲得するのに役立ちました。 UNIXマシンの場合、これは、Javascriptが、オペレーティングシステムによってネイティブにサポートされている確立されたBashスクリプトと共存していることを意味します。

しかし、もし…

しかし、Node.jsスクリプト内でBashコマンドを直接呼び出すことができるとしたらどうでしょうか。ほとんどの実装でJavascriptを使用することをお勧めしますが、目標を達成するために、あちこちでBashを使用する必要があります。

Googleの最新プロジェクトの1つである、単に「zx」と呼ばれるCLIツールにより、このようなライブラリが利用可能になりました。何よりも、すぐに使用できます。必要なのは、バージョン14以上のインストール済みのNode.jsインスタンスだけです。

// Your JS-file. You can either use
// the .js-suffix or the alternative
// .mjs-suffix, which allows the global
// usage of 'await' when used with 'zx'.

// The nessary shebang, as in Bash-scripts
#!/usr/bin/env zx

// A simple demonstration on how to
// call Bash-command inside your JS.
// Here, we log the current working directory.
await $`echo $PWD`;
// Now to call your file, you can 
// simply use 'npx', the node package
// executor that comes with NPM.

npx zx ./demo.mjs

// For more examples, check out the 
// repo where Google provides some
// more real-world use cases.

ドル記号を演算子として使用し、その後にBashコードを含む2つのバッククォートを使用すると、Bashスクリプトのように実際の呼び出しを行うことができます。

また、グローバル依存関係として「zx」をインストールすると、Bashスクリプトと同じ方法でJavascriptファイルを呼び出すことができます。

もっと探検する

この記事は、パッケージの紹介のみを目的としています。詳細については、補遺のリンクを確認して、APIと「zx」がサポートするすべての機能を完全に調べてください。