前提・実現したいこと
シェルスクリプトでfor文を回し、その中でcurlを実行、その結果によって出すメッセージを変えたいと考えています。
curlの中身は「jsonを取りに行き、そこにパラメータを渡してコマンドを実行する」というものです。
発生している問題・エラーメッセージ
curlを投げた際のhttpヘッダーから結果の取得はできるのですが、肝心のcurlの内容が実行されません(今回であればページのアクティベートがされません)。
シェルスクリプトにおいて、for文の中(whileなどでも可)でcurlが実行されない理由があるのでしょうか?あるいは、このjsonの特有の問題なのでしょうか?
該当のソースコード
for target in ${activateTargets[@]}; do status_code=`curl -sS -u $user:$pass -X POST -F path="$target" -F cmd="activate" $authorDomain/bin/replicate.json -o /dev/null -w '%{http_code}\n'` if [ "$status_code" = "200" ]; then echo "$authorDomain$targetのアクティベートに成功しました" else echo "$authorDomain$targetのアクティベートに失敗しました" fi done
試したこと
curlをforの外に出し、変数部分に該当する値を入れると実行すると正しく処理が行われます。
補足情報(FW/ツールのバージョンなど)
シェバンはbashです。
回答1件
あなたの回答
tips
プレビュー