gpt4 book ai didi

grails - Groovy(可能是Grails)错误地转义了命令行参数

转载 作者:行者123 更新时间:2023-12-02 14:41:02 26 4
gpt4 key购买 nike

请注意:尽管此问题涉及Grails,但我几乎100%确信这是纯粹的Groovy问题。

我有一个Grails应用程序(Grails 2.4.5,Groovy 2.4.3),该应用程序在运行时从命令行接受一些系统属性:

grails -Dfoo=2 -DfizzPassword="8cv$5)iEIm8K" run-app --stacktrace

然后,在我的代码中,将这些sys属性读为String值:
String foo = System.getProperty('foo')
String fizzPassword = System.getProperty('fizzPassword')

但是,由于“fizzPassword”属性中包含“ $5”,因此Groovy以某种方式对其进行了转义:
void doSomething() {
String foo = System.getProperty('foo')
String password = System.getProperty('fizzPassword')

// Prints: "Password read was: 8cv)iEIm8K."
//
// When it should be printing: "Password read was 8cv$5)iEIm8K."
println "Password read was: ${password}."
}

关于如何将 fizzPassword sys属性传递到应用程序,然后将其读取为字符串,而没有Groovy转义/忽略“ $5”(以及可能的其他类似内容)的任何想法吗?简而言之:如何让Groovy从命令行逐字阅读sys props?

最佳答案

那里的问题与时髦或粗俗无关。 $...将从您的shell中替换:

$ echo "8cv$5)iEIm8K"
8cv)iEIm8K

您必须正确引用带有敏感字符的var。例如 -DfizzPassword='8cv$5)iEIm8K'(注意单引号)

关于grails - Groovy(可能是Grails)错误地转义了命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34788795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com