`
darrenzhu
  • 浏览: 804779 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Groovy执行脚本命令shell command

    博客分类:
  • Java
阅读更多

1): 直接执行一个字符串语句,executing a string

A string can be executed in the standard java way:
def command = """executable arg1 arg2 arg3"""// Create the String
def proc = command.execute()                 // Call *execute* on the string
proc.waitFor()                               // Wait for the command to finish

// Obtain status and output
println "return code: ${ proc.exitValue()}"
println "stderr: ${proc.err.text}"
println "stdout: ${proc.in.text}" // *out* from the external program is *in* for groovy

Gotchas: Take care if you wish to pass a quoted argument that contains white space – it will be split into multiple arguments, e.g.:

"""executable "first with space" second""".execute()

will invoke executable with the following arguments:

  • arg1 = "first
  • arg2 = with
  • arg3 = space"
  • arg4 = second

In such a case, you may prefer to use one of the array or list of String variations, e.g.:

["executable", "first with space", "second"].execute()

2) Processing shell command with piping in groovy script, 在groovy 脚本中使用管道功能

def proc = "ffmpeg -i /tmp/sample.m4a -f ffmetadata 2>&1 | grep Duration".execute()

是不行的,the '2>1&1' bit is shell functionality, and Groovy processes don't invoke the shell, they just start a program. If you really need it, you should do something like:

 
def proc1 = ['/bin/bash', '-c', '/usr/local/bin/ffmpeg -i /tmp/sample.m4a -f ffmetadata 2>&1'].execute()
or similar - do some experimenting. That is, you need to call the shell with the command you want executed as argument.

3): using ant builder's exec task

Ant has an exec task and it be accessed from the AntBuilder object

def ant = new AntBuilder()   // create an antbuilder
ant.exec(outputproperty:"cmdOut",
             errorproperty: "cmdErr",
             resultproperty:"cmdExit",
             failonerror: "true",
             executable: '/opt/myExecutable') {
                             arg(line:"""*"first with space"* second""")
             }
println "return code:  ${ant.project.properties.cmdExit}"
println "stderr:         ${ant.project.properties.cmdErr}"
println "stdout:        ${ ant.project.properties.cmdOut}"
分享到:
评论

相关推荐

    最新 groovy开发包

    Groovy Shell允许你在命令行环境中交互式地运行Groovy代码,而Groovy Console则提供了一个图形化的界面,方便进行代码编辑、运行和查看结果。 7. **源码分析**:在提供的学习资料中包含源码,这对于深入理解Groovy...

    Groovy中文教程.pdf

    - 使用 `groovyConsole` 可以方便地执行Groovy脚本,通过工具栏按钮或快捷键(如Windows下的Ctrl+R或Ctrl+Enter,Mac下的Command+R或Command+Enter)执行代码。 - 此外, `groovyConsole` 支持保存脚本、打开现有...

    java执行ssh命令

    在Java编程中,执行SSH(Secure Shell)命令是一项常见的任务,尤其在远程服务器管理、自动化运维和分布式系统中。SSH是一种网络协议,用于安全地在远程主机上执行命令和传输数据。下面我们将深入探讨如何在Java中...

    java调用shell向DataX传递参数,where条件,包含特殊字符

    例如,你可以创建一个shell脚本来执行DataX的同步任务,并将where条件作为参数传递。当条件包含特殊字符(如单引号 `'`、双引号 `"`、反斜杠 `\` 或者管道符号 `|` 等)时,必须正确转义以防止shell解释器错误解析。...

    基于Java的开发的SHELL CRaSH.zip

    通过CRaSH,你可以用Groovy编写命令,这些命令可以在运行时解析并执行,为Java应用程序添加了一层交互性。 以下是关于CRaSH的一些关键知识点: 1. **安装与集成**:首先,你需要将CRaSH库添加到你的项目依赖中。这...

    SeaShell:在 Java 中使用自定义脚本语言的自定义命令行 shell

    SeaShell是一个开源项目,它允许开发者在Java环境中创建一个自定义的命令行shell,这个shell可以支持多种脚本语言,使得用户能够通过命令行接口执行各种任务。本文将深入探讨SeaShell的核心概念、设计原则以及如何在...

    java源码:Java开发的SHELL CRaSH.gz

    3. **脚本支持**:除了基本的命令执行,CRaSH还支持通过JavaScript或Groovy编写脚本,增强了交互性,使得自动化任务变得简单。 4. **集成Spring框架**:CRaSH通常与Spring框架紧密集成,可以轻松地注入到Spring管理...

    spring-boot-cli-1.4.0.BUILD-SNAPSHOT-bin.zip

    2. **运行脚本**:使用`spring run script.groovy`命令执行Groovy脚本。例如,你可以创建一个简单的“Hello, World!”应用: ```groovy @SpringBootApplication class HelloWorldApplication { static void main...

    spring-boot-cli-2.1.5.RELEASE-bin.zip

    4. **运行应用**:使用`spring run`命令运行Groovy脚本或Java源代码。 5. **调试和测试**:利用CLI的内置功能进行应用调试和单元测试。 综上所述,Spring Boot CLI 2.1.5.RELEASE是一个强大且易用的工具,它简化了...

    Java 诊断工具.zip

    4. **交互式Shell**:Arthas提供了一个TCL(Tool Command Language)命令行环境,用户可以编写命令脚本,进行更复杂的操作。 5. **日志查看**:`log`命令允许开发者查看应用的日志,甚至在运行时动态调整日志级别。...

    安装Spring Boot CLI.pdf

    通过Spring Boot CLI,用户可以直接在命令行环境中运行Groovy脚本,这使得开发者能够利用接近Java的语法结构,同时减少大量的样板代码编写工作。Spring Boot CLI并不强制使用,但对于那些希望在没有集成开发环境(IDE...

    spring-boot-cli-2.2.6.RELEASE-bin.zip

    3. **运行应用**: 使用`spring run`命令直接运行Groovy脚本或者Java源代码,快速启动Spring Boot应用。 4. **交互式模式**: 可以通过`spring`命令进入一个交互式的Groovy shell,直接测试和运行代码片段。 **2.2.6....

Global site tag (gtag.js) - Google Analytics