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