较短的斯卡拉脚本头
问题描述:
有可能通过启动一个文本文件,写在Scala的shell脚本:较短的斯卡拉脚本头
#!/bin/sh
exec scala "$0" "[email protected]"
!#
为了缓解剧本创作,我想编写称为scalash
一个可执行文件(可能是一个bash脚本)允许将Scala脚本标题缩短为一行:
#!/bin/scalash
这可能吗?如果我可以将可选参数传递到scalash
,例如添加类路径依赖关系,则需要加分。
答
在斯卡拉2.11,您可以按如下(正好与大多数其他语言)做到这一点:
#!/usr/bin/env scala
println(args.mkString(" "))
在斯卡拉2.9.0.1,你可以简单地创建以下脚本:
test.scala
#!/usr/bin/scala
!#
println(args.mkString(" "))
并使其可执行。 (第一行路径更改为你的可执行文件)
用法:
# ./test.scala Hello world!
Hello world!
答
见this pull request(为this)。没有与之相关的问题 - 如果您喜欢它,您可以打开问题并对拉取请求发表评论。
您也可以使用SBT来启动脚本。查看关于scalas
here的信息。
编辑
拉请求被接受,所以这应该工作:
#!/usr/bin/env /path/to/scala
etc
不知道这里,但我认为[ “只有一个参数”(HTTP:// Linux操作系统。 die.net/man/2/execve)shebang行的限制来自操作系统;不知道,你是否可以做些什么。 – Dirk