我已经安装了最新版本的Spidermonkey(JavaScript-C 1.8.5+ 2011-04-16)并注意到一个奇怪的怪癖,你可能知道答案。
过去,如果我这样做了:
echo -n "print('hi');"
结果将返回:
js> hi
但是,现在当我运行相同的命令时,我得到的返回输出是:
js> print('hi');
hi
js>
正如您所看到的,有3行输出,而不仅仅是1。
这通常不会成为问题,但我正在使用一个特殊的CMS,它不会处理此异常,因此只会出错。
有解决方法吗?我应该安装旧版本吗?
P.S。我知道Spidermonkey可以选择“e”(即js -e“print('hi')”)来运行内联代码,但我再次使用的CMS不能这样工作:\
答案 0 :(得分: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
答案 1 :(得分:1)
+1,但最新的SpiderMonkey命令行选项解析器在这里实际上是一个微妙的区别:
$ echo -n "print('hi');" | ./js
js> print('hi');
hi
js>
$ echo -n "print('hi');" | ./js -
hi
我几个月前重写了选项解析器,所以这必须是最新版本。