回答:
これはあなたにとって望ましいことですか?
// Replace macros in each .js file
cd('lib');
ls('*.js').forEach(function(file) {
sed('-i', 'BUILD_VERSION', 'v0.1.2', file);
sed('-i', /.*REMOVE_THIS_LINE.*\n/, '', file);
sed('-i', /.*REPLACE_LINE_WITH_MACRO.*\n/, cat('macro.js'), file);
});
cd('..');
もしそうなら、ShellJSは興味深いかもしれません、それは
Node.js APIの上のUnixシェルコマンドのポータブル(Windowsを含む)実装。
ただし、これがフル機能のログインシェルとして使用できるかどうかはわかりません。(たぶんラッピングがありますか?)
あなたはそれが実際にシェルではないと主張することができますが、TermKitを知っていますか?Node.js + Webkitで構成されているため、JSを使用して拡張できます(推測)。シェル言語はまだBash(-ish)です。
cmd arguments
構文に従っていないため、技術的にはこれをシェルとは考えていません。たとえばpsh
、私の理解からperl言語にこのような構文を追加して、典型的なシェルgnp.github.io/pshのように見えるようにします。反例 があるかもしれませんが、まだ見つかりません。
sed({i:1}, 'BUILD_VERSION', 'v0.1.2', file)
代わりに使用できます。awaitで非同期関数を使用する方がよいので、並列処理が高速になります。
Mozilla INCはjavascript
シェルを提供しています:Introduction_to_the_JavaScript_shellを参照してください
システムシェルでのjavascriptシェルの例:
$ js
js> str = "welcome on *nix side"
"welcome on *nix side"
js> str.indexOf("nix");
12
js>
テスト目的で使用しているため、問題は検出されませんでした。
js
パッケージとして利用可能です。
Ubuntuまたは他のdebianベースのシステムを使用している場合は、rhino(Mozilla.orgから)をインストールできます。
sudo apt-get install rhino
代替手段を介してjsを提供します。
=== /usr/bin/js is a symlink... following it
lrwxrwxrwx 1 root root 20 Nov 21 08:54 /usr/bin/js -> /etc/alternatives/js
=== /etc/alternatives/js is a symlink... following it
lrwxrwxrwx 1 root root 14 Nov 21 08:54 /etc/alternatives/js -> /usr/bin/rhino
=== /usr/bin/rhino is owned by package: rhino ===
したがって、rhinoまたはjsを呼び出すと、JavaScriptシェルが提供されます。
編集(2014-06-30):
rhinoはファイル内のJavaScriptコードをすばやくテストするのに適していますが、インタラクティブシェルではないため、GNU readlineスタイルの編集をサポートしていません。インタラクティブな作業の場合はnodejs
、Ubuntu / debianを使用することをお勧めしますsudo apt-get install nodejs
。これjs
により、js
行を編集し、上/下矢印キーで履歴を呼び出すことができる、よりインタラクティブなシェル(コマンドを使用して呼び出す)が提供されます。オプションのより長いリストについては、 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Shellsを参照してください。