It's possible to write shell scripts in Scala by starting a text file with:
#!/bin/sh
exec scala "$0" "$@"
!#
To ease script creation, I would like to write an executable called scalash
(perhaps a BASH script) allowing to shorten Scala script header to just one line:
#!/bin/scalash
Is it possible ? Extra points if I can pass optional parameters to scalash
, for instance to add classpath dependencies.
In Scala 2.11, you can do it as follows (exactly as with most other languages):
#!/usr/bin/env scala
println(args.mkString(" "))
In Scala 2.9.0.1, you can simply create the following script:
test.scala
#!/usr/bin/scala
!#
println(args.mkString(" "))
and make it executable. (change the first line to path to your executable)
Usage:
# ./test.scala Hello world!
Hello world!