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 Shell允许你在命令行环境中交互式地运行Groovy代码,而Groovy Console则提供了一个图形化的界面,方便进行代码编辑、运行和查看结果。 7. **源码分析**:在提供的学习资料中包含源码,这对于深入理解Groovy...
- 使用 `groovyConsole` 可以方便地执行Groovy脚本,通过工具栏按钮或快捷键(如Windows下的Ctrl+R或Ctrl+Enter,Mac下的Command+R或Command+Enter)执行代码。 - 此外, `groovyConsole` 支持保存脚本、打开现有...
在Java编程中,执行SSH(Secure Shell)命令是一项常见的任务,尤其在远程服务器管理、自动化运维和分布式系统中。SSH是一种网络协议,用于安全地在远程主机上执行命令和传输数据。下面我们将深入探讨如何在Java中...
例如,你可以创建一个shell脚本来执行DataX的同步任务,并将where条件作为参数传递。当条件包含特殊字符(如单引号 `'`、双引号 `"`、反斜杠 `\` 或者管道符号 `|` 等)时,必须正确转义以防止shell解释器错误解析。...
通过CRaSH,你可以用Groovy编写命令,这些命令可以在运行时解析并执行,为Java应用程序添加了一层交互性。 以下是关于CRaSH的一些关键知识点: 1. **安装与集成**:首先,你需要将CRaSH库添加到你的项目依赖中。这...
SeaShell是一个开源项目,它允许开发者在Java环境中创建一个自定义的命令行shell,这个shell可以支持多种脚本语言,使得用户能够通过命令行接口执行各种任务。本文将深入探讨SeaShell的核心概念、设计原则以及如何在...
3. **脚本支持**:除了基本的命令执行,CRaSH还支持通过JavaScript或Groovy编写脚本,增强了交互性,使得自动化任务变得简单。 4. **集成Spring框架**:CRaSH通常与Spring框架紧密集成,可以轻松地注入到Spring管理...
2. **运行脚本**:使用`spring run script.groovy`命令执行Groovy脚本。例如,你可以创建一个简单的“Hello, World!”应用: ```groovy @SpringBootApplication class HelloWorldApplication { static void main...
4. **运行应用**:使用`spring run`命令运行Groovy脚本或Java源代码。 5. **调试和测试**:利用CLI的内置功能进行应用调试和单元测试。 综上所述,Spring Boot CLI 2.1.5.RELEASE是一个强大且易用的工具,它简化了...
4. **交互式Shell**:Arthas提供了一个TCL(Tool Command Language)命令行环境,用户可以编写命令脚本,进行更复杂的操作。 5. **日志查看**:`log`命令允许开发者查看应用的日志,甚至在运行时动态调整日志级别。...
通过Spring Boot CLI,用户可以直接在命令行环境中运行Groovy脚本,这使得开发者能够利用接近Java的语法结构,同时减少大量的样板代码编写工作。Spring Boot CLI并不强制使用,但对于那些希望在没有集成开发环境(IDE...
3. **运行应用**: 使用`spring run`命令直接运行Groovy脚本或者Java源代码,快速启动Spring Boot应用。 4. **交互式模式**: 可以通过`spring`命令进入一个交互式的Groovy shell,直接测试和运行代码片段。 **2.2.6....