管道到Spidermonkey无法正常工作

时间:2011-08-17 03:27:25

标签: javascript linux spidermonkey

我已经安装了最新版本的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不能这样工作:\

2 个答案:

答案 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)

对于Anton Babushkin的答案,

+1,但最新的SpiderMonkey命令行选项解析器在这里实际上是一个微妙的区别:

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

我几个月前重写了选项解析器,所以这必须是最新版本。