【问题标题】:gfsh command is not accepting password with special character '!' from gfsh consolegfsh 命令不接受带有特殊字符“!”的密码从 gfsh 控制台
【发布时间】:2020-09-21 12:22:27
【问题描述】:

当我们的密码带有特殊字符时,无法使用 gfsh 控制台连接到启用了身份验证的 gemfire 集群。使用以下命令登录 gemfire 集群

gfsh -e "connect --locator=localhost[13120]  --user=$(getProperty 'AUTH_USER') --password=$(getProperty 'AUTH_PASSWORD')"

密码类似于 'P*Q8!j6c'。我试图逃避'!和 '\!'。但是没有用。当我手动打开 gfsh 控制台并从 shell 脚本手动提供它时,它对我来说工作正常。

如果您能帮我传递密码参数,那将是一个很大的帮助。

【问题讨论】:

  • 在 bash 下对我来说似乎工作正常。尝试使用 shell 调试运行 gfsh: bash -x gfsh ... 然后查看它在最后一行打印的内容。这将显示您的命令参数是如何扩展的。例如我的显示:` + /Library/.../bin/java -Dgfsh=true -Dlog4j.configurationFile=classpath:log4j2-cli.xml -classpath '/lib/gfsh-dependencies.jar :/Users/jdeppe/workspace/gemfire-develop/open/geode-assembly/build/install/apache-geode/extensions/*' org.apache.geode.management.internal.cli.Launcher -e 'connect --user =foo*! --password=foo*!' `

标签: shell scripting gemfire gfsh


【解决方案1】:

你应该可以做这样的事情:

eval '$GFSH -e "connect --user=foo --password=S*A8!j6c"'

这避免了 shell 试图扩展历史。如果您使用 bash,还可以使用 set +H 禁用历史扩展。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 2021-10-12
    • 2014-03-03
    相关资源
    最近更新 更多