scalac 代码中的 Shebangs

问题描述 投票:0回答:3

scala 解释器允许 shebang,但奇怪的是,scalac 对它们不感兴趣。有没有像这些这样的技巧来解决这个缺陷?

scala shebang scalac
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" "$@"
!#

0
投票

为什么不在构建脚本中调用

scalac
之前透明地剥离它们?


0
投票

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

shebang 行的内容将被解释器自动忽略,因为

#
字符是许多脚本语言中的注释标记。
一些不使用哈希标记开始注释的语言解释器,例如Scheme,仍然可能会忽略shebang行

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

© www.soinside.com 2019 - 2024. All rights reserved.