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