bash:如何传递包含特殊字符的密码

时间:2016-11-08 17:02:46

标签: bash shell special-characters

我有一个bash脚本从网站下载数据。为此,我需要使用网站的java客户端传递用户名和密码。我的密码有一个特殊字符,导致问题。我尝试过通常的解决方案,但没有一个正常。

#!/bin/sh
#$ -cwd

MYPASSWORD='password&123'

java -jar client.jar -p username $MYPASSWORD file.gz

在命令中直接使用\或使用变量。但那没有用。登录失败!

MYPASSWORD=password\&123
java -jar client.jar -p username $MYPASSWORD file.gz

尝试""或者''。登录失败。

MYPASSWORD='password&123'
java -jar client.jar -p username "\"$MYPASSWORD\"" file.gz

也尝试过,没有运气。     MYPASSWORD ='密码'"&安培;"' 123'

任何建议都会有所帮助。重置此网站上的密码似乎也存在问题。

1 个答案:

答案 0 :(得分:2)

只需引用参数。

mypassword='password&123'
java -jar client.jar -p username "$mypassword" file.gz

引号仅用于防止shell在扩展参数后对mypassword进行任何进一步处理。您实际上并没有将引号传递给您的程序。