Подтвердить что ты не робот

Запуск groovy script из командной строки

когда я сделал which groovy, я получил следующий результат

/usr/local/bin/groovy

Итак, я пошел вперед и создал helloworld.groovy с приведенным ниже содержанием

#!/usr/local/bin/groovy
println "hello world"

После этого я сделал chmod +x helloworld.groovy и попытался запустить файл с ./hellworld.groovy и, к сожалению, получил эту ошибку ./helloworld.groovy: line 2: print: command not found

Я мог бы избавиться от ошибки, изменив ее на

#!/usr/bin/env groovy
println "hello world"

так что вопрос, который у меня есть, - почему первый метод вызывает ошибку?

4b9b3361

Ответ 1

Вам нужно запустить script следующим образом:

groovy helloworld.groovy

Ответ 2

Он будет работать на ядре Linux 2.6.28 (подтверждено на 4.9.x). Он не будет работать на FreeBSD и других Unix-аксессуарах.

Ваш/usr/local/bin/groovy представляет собой оболочку script, завершающую java-запуск groovy.

См. раздел "Сценарии интерпретатора" http://man7.org/linux/man-pages/man2/execve.2.html и https://www.freebsd.org/cgi/man.cgi?query=execve&sektion=2