Nodeでシェルスクリプトを書くにはどうすればいいですか?次の記事では、zx ライブラリを使用して Node でシェル スクリプトを記述する方法を紹介します。
シェル スクリプト
シェル スクリプト、つまりシェルによって実行されるスクリプトを作成します。 Bash や zsh などは、特に運用担当者や保守担当者にとって、反復的なタスクを自動化するために使用される一般的な方法です。フロントエンド エンジニアにとって、Node.js を使用してシェル スクリプトを記述することは、多くのコア モジュールを提供し、他のフロントエンド スクリプト ライブラリをインポートして学習コストを削減できるため、良い選択です。
zx.js
の助けを借りずに Node.js で実行されるシェル スクリプトを作成しようとすると、期待したほどスムーズではないことがわかるかもしれません。コマンドライン引数をエスケープしてから stdout stdout
と stderr stderr
を使用するように注意して、サブプロセス用の特別な処理を記述する必要があります。特に直感的ではなく、記述するのが非常に困難になります。シェルスクリプトの使用が不器用です。
Bash シェル スクリプト言語は、サブプロセスを処理するコードを作成する必要がなく、シェル
スクリプトを作成するのに最適な言語であり、stdout
および # を処理する機能を備えています。 # #stderr の組み込み言語機能。しかし、Bash で
shell スクリプトを記述するのはそれほど簡単ではなく、構文が非常に複雑になる可能性があるため、ロジックの実装やユーザー入力のプロンプトなどの処理が不便になります。
zx.js ライブラリを使用すると、
Node.js を使用した shell スクリプトの作成が効率的かつ楽しくなります。
インストール
フロント エンド エンジニアにとって、依存関係をインストールするのは一般的なことなので、スクリプトnpm install zx
Using
Google のzx を実行します。 js 子プロセスの作成と、これらのプロセスからの
stdout および
stderr の処理をカプセル化する関数を提供します。以下で使用する主な関数は
$ 関数です。
zx.js を使用して、スクリプトが拡張子
.mjs のファイルに書き込まれるように指定します。最上位の
await で使用できるようにします。
.js 拡張子に慣れている場合は、スクリプトを
void async function () {...}() のようなものでラップします。
.mjs を使用しましょう。各
.mjs ファイルは次のコードで始まります:
#! /usr/bin/env node
shell スクリプト内の
ls は、ファイル
ls.mjs を作成します。完全なコードは次のとおりです:
#! /usr/bin/env node import { $ } from "zx"; $.verbose = false; const output = (await $`ls`).stdout.trim(); console.log(output);
shell スクリプト ファイルと同様に、実行可能ファイルに変換する必要があります:
chmod +x ./ls.mjs
shell スクリプトを実行しましょう。
Google の
zx.js には、シェル スクリプトの作成を簡素化するための他の実用的な関数 (
question(): ユーザーに直接入力を求めることができる Node.js の readline モジュールのラッパー。
./ls.mjs
zx.js が提供する実用的な機能に加えて、次のようないくつかの一般的なスクリプト ライブラリも提供します。
fetch
ノード関連の知識の詳細については、以上がこの記事では、zx ライブラリを使用して Nodejs でシェル スクリプトを作成する方法について説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。