从groovy打印$ PATH - 字符被转义?

Qua*_*Bit 3 variables bash shell groovy

这里有点麻烦.我试图运行一个片段,如:

println 'echo $PATH'.execute().getText()
Run Code Online (Sandbox Code Playgroud)

我期望得到系统$ PATH变量的内容.但是,我改为:

$PATH
Run Code Online (Sandbox Code Playgroud)

我的猜测是$被转义,因此没有被bash评估.我也尝试了命令构建器语法,结果相同.有什么建议?

tim*_*tes 5

与Java一样Runtime.exec(),您需要实例化一个shell,以便该shell变量PATH对进程可见...

这应该工作:

['sh', '-c', 'echo $PATH' ].execute().text
Run Code Online (Sandbox Code Playgroud)


ata*_*lor 5

如果您只是想获得PATH,那么更简单,更便携的方法就是使用它System.getenv().例如:

println System.getenv('PATH')
Run Code Online (Sandbox Code Playgroud)