首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在linux中执行groovy中的bash脚本

在linux中执行groovy中的bash脚本
EN

Stack Overflow用户
提问于 2012-08-15 00:37:18
回答 1查看 4.4K关注 0票数 1

我在我的服务器上有一个bash脚本,它从github获取主分支,构建它并将工件部署到tomcat。我决定编写一个github web URL钩子,它将调用这个sh。因为我的服务器运行的是Java,所以我使用的是groovy。我用/home/madhead/scripts写了一个测试脚本test.sh

代码语言:javascript
复制
echo "SHELL"
touch /home/madhead/test_`date +%d_%m_%Y_%H_%M_%S` # To see if script is actually called

/home/madhead/.bashrc中将环境变量SCRIPTS设置为/home/madhead/scripts。在我的groovlet中我有

代码语言:javascript
复制
println "GROOVY"
println '$SCRIPTS/test.sh'.execute().text
println `whoami'.execute().text` //Prints madhead
println `env'.execute().text` //Prints all environment variables for madhead, SHELL is /bin/bash and SCRIPTS is /home/madhead/scripts in this output.

"GROOVY“在html中是printend,但当我调用groovlet时,没有"SHELL”,也没有创建测试文件。因此,脚本不会被调用。我试过了

代码语言:javascript
复制
println '/home/madhead/scripts/test.sh'.execute().text

在groovlet中,但没有任何效果。如何从groovy/java调用bash脚本?而且,println 'echo test'.execute().text会将测试打印到html,但println 'echo $SCRIPTS'.execute().text不会打印任何内容。为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-15 03:02:21

也许要获取环境变量,您需要:

代码语言:javascript
复制
def env = System.getenv()
println env.SCRIPTS

在我的盒子里,这家伙在工作:

代码语言:javascript
复制
groovy -e ' def env = System.getenv(); println env.JAVA_HOME '
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11956864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档