Шебанг в скалярном коде - PullRequest
       52

Шебанг в скалярном коде

1 голос
/ 11 ноября 2011

Интерпретатор scala допускает шебанги, но, как ни странно, скалы на них.Есть ли уловки типа эти , чтобы обойти этот недостаток?

Ответы [ 3 ]

2 голосов
/ 19 октября 2012

#!в скале должен быть закрыт с! #.Например:

#!/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 голосов
/ 11 ноября 2011

Я не думаю, что это вопрос «неясного синтаксиса Шебанга», а скорее проблема «языковой спецификации».
В статье Википедии о Шебанге действительно упоминается:

Содержимое строки shebang будет автоматически игнорироваться интерпретатором, поскольку символ # является маркером комментария во многих языках сценариев.
Некоторые интерпретаторы языка, которые не используют хеш-знак дляначальные комментарии, такие как Scheme , все еще могут игнорировать строку shebang .

Так что, если в своей спецификации scalac нет директив игнорировать первые строки как "заголовок сценария", такой как Scheme , нам нужно дождаться вашего случая Jira 5179 .

0 голосов
/ 11 ноября 2011

Почему бы не убрать их прозрачно перед вызовом scalac в вашем скрипте сборки?

...