Shell 从Groovy执行解压命令

Shell 从Groovy执行解压命令,shell,groovy,Shell,Groovy,我正在尝试从Groovy中运行解压shell命令 我在执行命令 "unzip ~/Documents/myFile.txt.zip -d ~/Documents/".execute() 但它不起作用。当我将确切的命令复制到终端时,它就工作了。如何从groovy做到这一点?就groovy而言,没有~;使用实际路径 groovy:000> p = "ls -CF /Users/Dave".execute() ===> java.lang.UNIXProcess@2603826d gro

我正在尝试从Groovy中运行解压shell命令

我在执行命令

"unzip ~/Documents/myFile.txt.zip -d ~/Documents/".execute()

但它不起作用。当我将确切的命令复制到终端时,它就工作了。如何从groovy做到这一点?

就groovy而言,没有
~
;使用实际路径

groovy:000> p = "ls -CF /Users/Dave".execute()
===> java.lang.UNIXProcess@2603826d
groovy:000> p.waitFor()
===> 0
groovy:000> p.in.text
===> Desktop/       Movies/         bin/
Documents/      Music/          node_modules/
Downloads/      Pictures/
Dropbox/        Public/     
Library/        ScreenshotOnFail/
您可以始终使用
System.getProperty(“user.home”)
,例如

p = "ls -CF ${System.getProperty('user.home')}".execute()

这是一个简单的解决方案,我已经绞尽脑汁了一段时间。谢谢@CaseyPatton注意,
p.err.text
将向您显示有关未知目录的错误消息。