1

我已经安装了最新版本的 Spidermonkey (JavaScript-C 1.8.5+ 2011-04-16),并注意到一个奇怪的怪癖,你可能知道答案。

过去,如果我这样做:

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

结果将返回为:

js> hi

但是,现在当我运行相同的命令时,我得到的返回输出是:

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

如您所见,有 3 行输出,而不仅仅是 1 行。

这通常不会是一个问题,但我正在使用一个特定的 CMS,它没有处理这个异常,所以只是出错了。

有解决方法吗?我应该只安装旧版本吗?

PS我知道Spidermonkey可以选择“e”(即js -e“print('hi')”)来运行内联代码,但我使用的CMS再次不能那样工作:\

4

2 回答 2

1

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

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

我仅在几个月前重写了选项解析器,因此必须使用最新版本。

于 2011-11-30T01:42:59.567 回答
1

看起来他们已经改变了蜘蛛猴在最新版本中的工作方式。要在 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 回答