ホームページ  >  記事  >  ウェブフロントエンド  >  Node.js を使用した JavaScript のシェル スクリプトの作成 [翻訳]_javascript スキル

Node.js を使用した JavaScript のシェル スクリプトの作成 [翻訳]_javascript スキル

WBOY
WBOYオリジナル
2016-05-16 17:49:561362ブラウズ

パラメータへのアクセス
次の内容を含む配列である process.argv を通じてコマンド ライン パラメータにアクセスできます:

[nodeBinary, script, arg0, arg1, ... ]

つまり、最初のパラメーターは process.argv[2] から始まり、次のようにすべてのパラメーターを反復処理できます:

Copy code コードは次のとおりです:

process.argv.slice(2).forEach(function (fileName) {
...
});
パラメータのより複雑な処理を実行したい場合は、Node.js モジュール nomnom と optimizer を参照してください。以下では、ファイル システム モジュールを何度も使用します。


コードをコピーします コードは次のとおりです。
var fs = require('fs'); >テキスト ファイルを 1 つ読み取ります
ファイルがそれほど大きくない場合は、ファイル全体をメモリに読み取り、文字列に入れることができます:



コードをコピー
コードは次のとおりです: var text = fs.readFileSync(fileName, "utf8");
これで分割できます。このテキストを 1 行にまとめます



コードをコピーします
コードは次のとおりです。 text.split(/r?n /).forEach(function (line) { // ... });

大きなファイルの場合はストリームを使用できますStack Overflow に解決策があります。

テキスト ファイルを書き込む
文字列を介して完全なコンテンツをファイルに書き込むことができます。 writeFileSync(fileName, str , 'utf8');
または、文字列をストリームに増分的に書き込むこともできます。




コードをコピーします。


コードは次のとおりです。 解決策 1: 既存のファイルを読み取ります。文字列に移動し、「rn」を検索し、見つからない場合は、行終端文字が「n」であることを確認します。




コードは次のとおりです:


var EOL = fileContents.indexOf("rn") >= 0 ? "rn" : "n";解決策 2: 検出システム プラットフォーム。すべての Windows プラットフォームと 64 ビット システムは、


コードをコピーします。コードは次のとおりです: var EOL = (process.platform === 'win32' ? 'rn' : 'n')
パスの処理

ファイル システム パスを処理する場合、パス モジュールを使用すると、正しい PATH 区切り文字 (Unix では「/」、Windows では「」) が使用されます。


コードをコピー コードは次のとおりです: var path = require('path');
path.join(mydir, "foo" );


スクリプトを実行します
シェル スクリプトの名前が myscript.js の場合は、次のように実行できます:

node myscript.js arg1 arg2 ...

Unix の場合スクリプトの最初の行にコード行を追加して、このスクリプトを解釈するためにどのプログラムを使用するかをオペレーティング システムに指示できます:

#!/usr/bin/env node

また、スクリプトに実行権限を与える必要があります:

chmod u x myscript.js
これで、スクリプトを独立して実行できるようになります:

./myscript.js arg1 arg2 ...

その他のトピック

  • 標準出力 (stdout) への出力: console.logコンソールはグローバル オブジェクトです , これはモジュールではないため、. をインポートするために
  • require() を使用する必要はありません。
  • 標準入力 (stdin) の読み取り: process.stdin読み取り可能なストリーム.プロセス ですグローバル オブジェクト。
  • シェル コマンドの実行: child_process.exec().
関連記事

  1. ヒント: Node.js シェルのファイルからソースをロードします
  2. Node.js REPL が開始されるたびにコードを実行します
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。