Scalaスクリプトをshebang行で実行するにはどうすればいいの?

$ scala hoge.scalaではなく、Scalaスクリプトに実行権限をつけて$ hoge.scalaで実行したいんです。で、

#!/usr/bin/env scala
print("abc")

とやってみました。
error: script file does not close its header with !# or ::!#
one error found
と、おこられました。

/opt/bin/scalaの中身ってどうなってるの?というわけでlessしてみたらシェルスクリプトでした。最終的には

exec "${JAVACMD:=java}" $JAVA_OPTS -cp "$TOOL_CLASSPATH" -Dscala.home="$SCALA_HOME" -Denv.classpath="$CLASSPATH" -Denv.emacs="$EMACS"  scala.tools.nsc.MainGenericRunner  "$@"

と実行してました。Mac OS Xでgroovyスクリプトをshebangで実行 – Grな日々(uehajの日記)(広告が懐かしすぎ)が参考になるかと思って、少しいじってみましたが知識少なすぎでまだ出来てません。

「Scalaスクリプトをshebang行で実行するにはどうすればいいの?」への2件のフィードバック

  1. はじめまして
    同じようなことをやろうとして辿り着きました.
    もう遅いかもしれませんが.!# を使うといいのかもしれません.

    #!/usr/bin/env scala
    !#
    println(“Hello”);

    http://www.scala-lang.org/node/166
    こっちは,#!/bin/sh 〜 !# として使っていますね.

    以上です.

  2. なるほど、そんな方法があるんですね。
    情報ありがとうございます!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です