
から特定のファイルをダウンロードする必要がありますhttps://file_path
。そのために私が使用する curl コマンドは次のとおりです。
curl --user user:password "https://file_path?raw" > location
- 上記の「file_path」の場所にあるファイルの実際の内容をダウンロードしたいのですが、どういうわけか curl は HTML コンテンツのみを返します。どうすればこれを修正できますか?
- シェルからこのコマンドを実行すると、上記のように実行され、HTML コンテンツがダウンロードされます。しかし、bash スクリプト内から実行すると、何もダウンロードされず、空のファイルが返されます。実行元によって動作が異なるのはなぜでしょうか?
答え1
curl
出力をパイプするかどうか、どのオプションを使用するかなどに応じて、stdout と stderr に送信する内容を変更します。ここでなぜこのようなことが起こるのかを正確に知るには、スクリプトを投稿する必要があります。ダウンロードした内容を特定のファイルに強制する最良の方法は、オプションを使用することです-o
。
curl --user user:password -o output_file "https://file_path?raw"
スクリプトで何を行うかに応じて、-s
ダウンロードの進行を抑制するオプションを使用することもできます。