curl –X GET
次のリンクでコマンドを使用するとします。
“$WEBSITE_URL/ACTION_NAME/ACTION1;id=$ID?Command=TEST&id1=$ID1&id2=$ID2&id3=$ID3”
ご覧のとおり、文字列には$変数がいくつかあります。明らかに、これらの変数の始まりと終わりをBashに知らせずに文字列に追加するだけでは機能しません。
だから私が見つけたさまざまなタグ(例えば、「$ Variable」、$ {Variable}など)を使って変数を分離し、文字列が通常の要求のように見え、動作するようにしようとしましたが、何も機能しませんでした。これには役立ついくつかの関連トピックがありますが、それを機能させるために必要な情報はまだありません。おそらく私のケースは基本的な例とは少し異なり、ここに何かが欠けているからです。どんなアイデアがありますか?乾杯!
答え1
具体的には、特殊文字を正しくエスケープしていないようです;
。&
?
また、サイトの機能かもしれませんが、二重引用符は必要なものとは異なります“
。"
私は次を使うでしょう:
# curl "${WEBSITE_URL}/${ACTION_NAME}/${ACTION1}\;id=${ID}\?Command=TEST\&id1=${ID1}\&id2=${ID2}\&id3=${ID3}"
答え2
bash
名前は、変数名に有効なすべての文字を使用して決定されます$
。つまり、最初の無効な文字は名前文字列を制限します。
疑わしいときに${Variable}
使用してください。すでにこれを述べたので、問題は異なります。
答え3
文字列を変数として生成し、その変数をカールに渡します。
string="${WEBSITE_URL}/ACTION_NAME/ACTION1;id=${ID}?Command=TEST&id1=${ID1}&id2=${ID2}&id3=${ID3}" echo $string #this should get the right string to be passed to curl curl -X GET $string