1

scala 解释器允许 shebangs,但奇怪的是,scalac borks 在他们身上。有没有像这样的技巧来解决这个缺陷?

4

3 回答 3

2

#!在 scala 中必须用 !# 关闭。例如:

#!/bin/bash
script_dir=$(cd $(dirname "$0") >/dev/null; pwd -P)
classes_dir=${script_dir}/build/classes
src_dir=${script_dir}/src

mkdir -p ${classes_dir}
scalac -d ${classes_dir} $(find ${src_dir} -name '*.scala')

exec /usr/bin/scala -classpath ${classes_dir} "$0" "$@"
!#
于 2012-10-18T21:54:04.047 回答
0

为什么不在调用scalac构建脚本之前透明地剥离它们呢?

于 2011-11-11T00:59:12.503 回答
0

我不认为这是一个“晦涩的 shebang 语法”的问题,而是一个“语言规范”的问题。
维基百科关于 Shebang的文章确实提到:

shebang 行的内容将被解释器自动忽略,因为该#字符是许多脚本语言中的注释标记。
一些不使用井号开始注释的语言解释器,例如Scheme,仍然可能会忽略 shebang 行

因此,如果 scalac 在其规范中没有将第一行忽略为“脚本头”的指令,例如 Scheme,我们需要等待您的Jira 案例 5179

于 2011-11-11T10:11:16.093 回答