【发布时间】:2011-11-11 00:55:25
【问题描述】:
scala 解释器允许 shebangs,但奇怪的是,scalac borks on them。有没有像these 这样的技巧来绕过这个漏洞?
【问题讨论】:
标签: scala compiler-construction shebang scalac
scala 解释器允许 shebangs,但奇怪的是,scalac borks on them。有没有像these 这样的技巧来绕过这个漏洞?
【问题讨论】:
标签: scala compiler-construction shebang scalac
#!在 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" "$@"
!#
【讨论】:
为什么不在构建脚本中调用scalac 之前透明地剥离它们?
【讨论】:
我认为这不是“晦涩的 shebang 语法”问题,而是“语言规范”问题。
Wikipedia article on Shebang 确实提到:
解释器会自动忽略 shebang 行的内容,因为
#字符是许多脚本语言中的注释标记。
一些不使用井号开始的语言解释器cmets,例如Scheme,仍然可以忽略shebang行。
因此,如果 scalac 在其规范中没有将第一行忽略为 "script header" like Scheme 的指令,我们需要等待您的 Jira case 5179。
【讨论】: