是否可以在文件开头声明它应该作为 Groovy 脚本执行?
其他脚本语言的示例:
#!/bin/sh
#!/usr/bin/python
#!/usr/bin/perl
这个#!/usr/bin/env groovy
将搜索你的路径,寻找 groovy 来执行脚本
一个常见的技巧是编写一个具有多种语言含义的脚本,也称为“多语言”脚本。
对于 Bash 和 Groovy,这特别容易:
#!/bin/sh
//bin/true; exec groovy -cp .. "$0"
println "Hello from Groovy"
#!
),它告诉操作系统将脚本作为常规 shell 脚本运行。/bin/true
命令(无操作);然后在 PATH 中找到 groovy 可执行文件并在脚本文件本身 ( "$0"
) 加上其他参数上运行它,替换当前的 shell 进程 ( exec
)//
) 并将运行脚本的其余部分。如果您需要更精细的 shell 部分,可能是为了设置环境变量,或者发现 Groovy 的安装位置,您可以使用不同的技巧:
#!/bin/sh
'''':
echo Hello from Shell
exec groovy -cp .. "$0"
'''
println "Hello from Groovy"
'''':
为两个空字符串''
,后跟一个冒号,这是一个空操作。exec
或一个exit
"$0"
)'''':
为一个长字符串的开头'''
,从而跳过所有的 shell 命令,然后运行脚本的其余部分。根据这个你可以使用#!/usr/bin/groovy
(如果那是它的位置)。您要查找的搜索词是shebang
(即第一行的名称)。