1

最新バージョンのSpidermonkey(JavaScript-C 1.8.5+ 2011-04-16)をインストールしましたが、答えを知っているかもしれない奇妙な癖に気づきました。

過去に、私がした場合:

echo -n "print('hi');"

結果は次のように返されます。

js> hi

ただし、同じコマンドを実行すると、返される出力は次のようになります。

js> print('hi');
hi
js>

ご覧のとおり、出力は1行ではなく3行です。

通常、これは問題にはなりませんが、この例外を処理していない特定のCMSを使用しているため、エラーが発生します。

回避策はありますか?古いバージョンをインストールする必要がありますか?

PS Spidermonkeyにはインラインコードを実行するための"e"(つまり、js -e "print('hi')")のオプションがあることを理解していますが、ここでも、使用しているCMSはそのようには機能しません:\

4

2 に答える 2

1

+1 Anton Babushkin's answer ですが、最新の SpiderMonkey コマンド ライン オプション パーサーは、実際には微妙な違いがあります。

$ echo -n "print('hi');" | ./js
js> print('hi');
hi
js> 
$ echo -n "print('hi');" | ./js -
hi

オプション パーサーを書き直したのはほんの数か月前なので、これは最新バージョンである必要があります。

于 2011-11-30T01:42:59.567 に答える
1

最新バージョンで Spidermonkey の動作が変更されたようです。Ubuntu 10 以降でこの問題を解決するには、次の手順に従います。

sudo add-apt-repository ppa:launchpad/ppa
sudo apt-get update
sudo apt-get install spidermonkey-bin

実行すると:

echo -n "print('hi');" | js

それは印刷されます:

hi 
于 2011-09-01T02:17:53.983 に答える