2016-04-11 10 views
0

シェル変数にパスワードを保存しようとしています。このステップが完了したら、このパスワードをcurlコマンドで使用する必要があります。シェル変数をカールコマンドに追加できません

logmetPassword=$(echo "XXXXXXXXXXXXX==" | openssl enc -base64 -d | openssl enc -des3 -k mysalt -d) 
curl -k -XPOST -d '[email protected]&passwd=$logmetPassword&space=myspace&organization=muOrg' https://mywebsite/login 

問題は、それが値を代入witoutであるとして、それは$logmetPasswordを取り、です。 私が試した多くのオプション:

curl -k -XPOST -d '[email protected]&passwd=${logmetPassword}& space=myspace&organization=muOrg' https://mywebsite/login 
curl -k -XPOST -d '[email protected]&passwd="{$logmetPassword}"&space=myspace&organization=muOrg' https://mywebsite/login 
curl -k -XPOST -d '[email protected]&passwd=\"{$logmetPassword}\"&space=myspace&organization=muOrg' https://mywebsite/log 

任意の提案ですか?

答えて

2

$logmetPasswordを置換する場合は、引数(または引数のビット)を二重引用符で囲む必要があります。シェルは、一重引用符で囲まれたメタキャラクタを展開しません。

あなたはこれらのいずれかを使用できます。

curl -k -XPOST -d "[email protected]&passwd=${logmetPassword}&space=myspace&organization=muOrg" https://mywebsite/login 
curl -k -XPOST -d '[email protected]&passwd='"{$logmetPassword}"'&space=myspace&organization=muOrg' https://mywebsite/login 

最初は二重引用符ですべてを囲みます。 2番目は二重引用符で囲むだけです。全体として、私はおそらく秒を使用するだろうが、最初の文字列は安全です。

関連する問題