更短的Scala脚本标题

时间:2011-10-01 12:13:10

标签: shell scala scripting scala-script

可以通过启动带有以下内容的文本文件在Scala中编写shell脚本:

#!/bin/sh
exec scala "$0" "$@"
!#

为了简化脚本创建,我想编写一个名为scalash的可执行文件(可能是一个BASH脚本),允许将Scala脚本标题缩短为一行:

#!/bin/scalash

有可能吗?如果我可以将可选参数传递给scalash,例如添加类路径依赖项,那么额外的点。

2 个答案:

答案 0 :(得分:17)

在Scala 2.11中,您可以按照以下方式执行此操作(与大多数其他语言完全相同):

#!/usr/bin/env scala
println(args.mkString(" "))

在Scala 2.9.0.1中,您只需创建以下脚本:

test.scala

#!/usr/bin/scala
!#
println(args.mkString(" "))

并使其可执行。 (将第一行更改为可执行文件的路径)

用法:

# ./test.scala Hello world!
Hello world!

答案 1 :(得分:8)

请参阅this pull requestthis)。没有与之相关的问题 - 如果您愿意,可以打开问题并对拉取请求发表评论。

您也可以使用SBT启动脚本。查看有关scalas here的信息。

修改

拉取请求已被接受,因此这应该有效:

#!/usr/bin/env /path/to/scala
etc