bashループでカールが機能しない

bashループでカールが機能しない

単一のbashファイルでこのコマンドを実行して、データをURLに公開し、応答を取得します。

curl  -s -X  POST $url -d "username=username"

応答本文を出力します。すべてが大丈夫ですが、これを自動化したいので、次のようにurls.txtというファイルに複数のURLを保存しました。

https://url1.com
https://url2.com
and so on...

ファイルのすべての行(URL)を繰り返すには、このスクリプトを実行します。

while IFS="" read -r p || [ -n "$p" ]
do
  curl -s -X  POST $p -d "username=username" >> output.txt
done < urls.txt

ハードコードされたURLを使用してループを実行してみましたが、まだ機能しません。

while IFS="" read -r p || [ -n "$p" ]
do
  curl -s -X  POST http://manual.url -d "username=username" >> output.txt
done < urls.txt

ただし、出力は保存または表示されません。理由がわからない。どんなアイデアがありますか?カールをループとして実行できませんか?

ベストアンサー1

行をという変数として読みpましたが、それ以降はその変数を使用しません。

私はそうします:

while IFS='' read -r url || [ -n "$url" ]; do
    echo "URL: >>$url<<"
    curl -s -X  POST $url -d "username=username" >> output.txt
done < urls.txt

おすすめ記事