Curl funktoniert unter cygwin bash nicht korrekt
Ich versuche aus einem bash Skript, welches ich unter Windows innerhalb eines cygwin Terminals aufrufe, eine "curl" Kommando abzusetzen. Erstaunlicherweise geht das geleiche Kommando unter PowerShell oder CMD, aber nicht , wenn ich es aus cygwin aufrufe.
Auch Versuche:
"echo curl -o out.txt http://<URL>" | powershell oder
powershell -command "curl -o out.txt http://<URL>" führen zum gleichen Ergebnis. Es werden nur 641 Byte von erwarteten 1538 geholt.
Beispiel:
Cygwin Bash Terminal:
PowerShell direkt:
Interessanterweise wird nicht hinten abgeschnitten sondern ein Block zwischen <body> und </body> unterdrückt/herausgefiltert, der ausschließlich "Zeilen"/bzw. "Abschnitte" enthält , die mit <div class= ..."
begonnen werden.
Hat dafür jemand eine Erklärung ? Diese fände ich hoch interessant !
Die Alternative mit Powershell selbst die Daten zu holen funktioniert tadellos.
Auch Versuche:
"echo curl -o out.txt http://<URL>" | powershell oder
powershell -command "curl -o out.txt http://<URL>" führen zum gleichen Ergebnis. Es werden nur 641 Byte von erwarteten 1538 geholt.
Beispiel:
Cygwin Bash Terminal:
$ echo "curl.exe -o out.txt http://192.168.178.38:9100/webbrowse/O3$536871012" | powershell
Windows PowerShell
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.
Lernen Sie das neue plattformübergreifende PowerShell kennen – https://aka.ms/pscore6
PS C:\Users\sablewski\tools> curl.exe -o out.txt http://192.168.178.38:9100/webbrowse/O336871012
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 641 100 641 0 0 5566 0 --:--:-- --:--:-- --:--:-- 5573
PS C:\Users\sablewski\tools>
PowerShell direkt:
PS C:\Users\sablewski\tools> curl.exe -o out.txt http://192.168.178.38:9100/webbrowse/O3$536871012
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1538 100 1538 0 0 97083 0 --:--:-- --:--:-- --:--:-- 100k* *
Interessanterweise wird nicht hinten abgeschnitten sondern ein Block zwischen <body> und </body> unterdrückt/herausgefiltert, der ausschließlich "Zeilen"/bzw. "Abschnitte" enthält , die mit <div class= ..."
begonnen werden.
Hat dafür jemand eine Erklärung ? Diese fände ich hoch interessant !
Die Alternative mit Powershell selbst die Daten zu holen funktioniert tadellos.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 51477027972
Url: https://administrator.de/forum/curl-funktoniert-unter-cygwin-bash-nicht-korrekt-51477027972.html
Ausgedruckt am: 10.05.2025 um 11:05 Uhr
4 Kommentare
Neuester Kommentar

Jepp das Dollarzeichen leitet sowohl in Bash und Powershell eine Variable ein, steht diese nicht in Hochkommas wird sie expandiert, auch innerhalb von normalen Anführungszeichen, URL in Hochkommas setzen dann wird auch nichts in der URL expandiert
oder eben das Dollarzeichen escapen wenn normale Anführungszeichen benutzt werden
Shell expansion

echo 'curl.exe -o out.txt "http://192.168.178.38:9100/webbrowse/O3`$536871012"' | powershell
echo "curl.exe -o out.txt \"http://192.168.178.38:9100/webbrowse/O3`\$536871012\"" | powershell
Shell expansion


p.s In. Powershell brauchst du nicht unbedingt curl das hat auch schon passende Commands
Invoke-WebRequest
Invoke-WebRequest 'http://192.168.178.38:9100/webbrowse/O3$536871012' -OutFile "D:\out.txt"