web-dev-qa-db-ja.com

Unixシェル変数をCURLGETリクエストに追加する最良の方法

次のリンクでcurl –X GETコマンドを使用するとします。

“$WEBSITE_URL/ACTION_NAME/ACTION1;id=$ID?Command=TEST&id1=$ID1&id2=$ID2&id3=$ID3”

ご覧のとおり、この文字列にはいくつかの$変数があります。明らかに、これらの変数の開始位置と終了位置をBashに通知せずに、文字列に追加するだけでは機能しません。

そこで、見つけたすべての種類のタグ(つまり、 '” $ Variable”'、$ {Variable}など)を使用して変数を分離し、この文字列を通常のリクエストのように見せて動作させようとしましたが、どれも機能しませんでした。ここにはいくつかの関連トピックがあり、それらは役に立ちましたが、それでも私が得た情報はそれを機能させませんでした。おそらく私のケースは基本的な例とは少し異なり、ここで何かが欠けているためです。何か案は?乾杯!

1
C_U

特殊文字を適切にエスケープしていないようです。具体的には、;&、および?

また、それはこのWebサイトの機能である可能性がありますが、二重引用符は探している引用符ではありません。"と同じではありません。

私が使用する:

# curl "${WEBSITE_URL}/${ACTION_NAME}/${ACTION1}\;id=${ID}\?Command=TEST\&id1=${ID1}\&id2=${ID2}\&id3=${ID3}"

2
Stephan

bashは、$の後の変数名で有効なすべての文字を使用して名前を決定します。つまり、最初の不正な文字が名前文字列を制限します。

疑わしい場合は、${Variable}を使用する必要があります。あなたはすでにそれを言っているので、あなたの問題は何か違うに違いありません。

0
Hauke Laging