什么是scala -i命令行选项应该做什么?

时间:2009-11-05 21:11:37

标签: shell command-line scala debian interactive

我发现scala'-i'命令行选项对于运行一些scala代码非常有用,然后将我转储到交互式shell中,这样我就可以生成/检查它定义的内容。

但有一件事让我完全神秘:为什么它会加载并运行两次脚本?

例如,给定文件test.scala包含cannonical

println("Hello world")

运行

scala -i test.scala

产生

$ scala -i test.scala
Loading test.scala...
Hello world

Loading test.scala...
Hello world

Welcome to Scala version 2.7.5final (Java HotSpot(TM) Client VM, Java 1.6.0_12).
Type in expressions to have them evaluated.
Type :help for more information.

scala>

显然运行两次并不是太令人头疼,但是对于需要一段时间才能运行的脚本来说很烦人(我正在使用[Project Euler]((https://projecteuler.net)问题来学习scala)

我认为我误解了-i选项的意图或用法......如何让我的脚本文件只运行一次?

(FWIW,我正在使用Squeeze的scala软件包访问Debian / Lenny。)

2 个答案:

答案 0 :(得分:6)

给予-i选项的文件的双重加载是Scala 2.7中众所周知的错误。它长期固定在2.8开发中心。

RRS

答案 1 :(得分:0)

scala manual page表示-i选项“请求预先加载文件。它只对交互式shell有意义”。似乎不是贝壳的人不应该使用它。