如何从特定目录执行shell命令?

时间:2016-09-12 09:39:07

标签: grails jobs

在grails中运行shell命令就像

一样简单
"ls".execute().text

如果我想从grails logs目录运行上面的shell命令,那么我该如何实现呢?

谢谢!

2 个答案:

答案 0 :(得分:1)

在grails中从特定目录运行shell命令。

" ls / badDir(给你log dir路径grails日志)" .execute()。text

答案 1 :(得分:0)

如果您要执行的命令与典型的bash命令不同(您可以通过将路径作为参数传递来避免修改工作目录):

我有很多需要执行外部二进制文件的情况,在大多数情况下,我最终使用了旧的ProcessBuilder:

new java.lang.ProcessBuilder('ls', '-l').directory(new File('/some/path')).start().text

另外,在字符串中转义空格/引号/等可能会很痛苦。 使用processBuilder,因为您可以构建一个描述命令的字符串列表,然后运行它。

def cmd = ['some_command']
cmd << userInputVariable  // does not matter if it contains spaces, quotes, backslashes or anything
println new ProcessBuilder(cmd).directory(someDirectory).start().text