在grails中运行shell命令就像
一样简单"ls".execute().text
如果我想从grails logs目录运行上面的shell命令,那么我该如何实现呢?
谢谢!
答案 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