
Ich muss eine bestimmte Datei von herunterladen https://file_path
. Hier ist der Curl-Befehl, den ich dafür verwende:
curl --user user:password "https://file_path?raw" > location
- Ich möchte den tatsächlichen Inhalt der Datei am obigen „file_path“-Speicherort herunterladen, aber irgendwie gibt Curl nur den HTML-Inhalt zurück. Wie kann ich das beheben?
- Wenn ich diesen Befehl von der Shell aus ausführe, wird er wie oben beschrieben ausgeführt, um den HTML-Inhalt herunterzuladen. Aber wenn ich ihn innerhalb eines Bash-Skripts ausführe, wird nichts heruntergeladen und eine leere Datei zurückgegeben. Warum sollte er je nachdem, von wo aus er ausgeführt wird, ein anderes Verhalten zeigen?
Antwort1
curl
ändert, was es an stdout und stderr sendet, je nachdem, ob Sie seine Ausgabe weiterleiten, welche Option Sie verwenden usw. Sie müssten Ihr Skript posten, um genau zu sehen, warum dies hier geschieht. Die beste Möglichkeit, den Inhalt dessen, was Sie herunterladen, in eine bestimmte Datei zu zwingen, ist die Verwendung der -o
Option:
curl --user user:password -o output_file "https://file_path?raw"
Abhängig davon, was Sie mit Ihrem Skript machen, möchten Sie möglicherweise auch die -s
Option zum Unterdrücken des Downloadverlaufs verwenden.