#!/bin/bash
echo "$(curl -s -I https://google.com|grep Server)" abc
gibt zurück:
abcer: gws
und bash -x
zeigt:
++ grep Server
++ curl -s -I https://google.com
' abco 'Server: gws
abcer: gws
aber
echo abc "$(curl -s -I https://google.com|grep Server)"`
zurück
abc Server: gws
Mit anderen Worten, wenn ich Text NACH dem curl-Befehl hinzufüge, wird er verstümmelt, aber es ist in Ordnung, wenn ich ihn vor curl hinzufüge.
Was passiert? Ich kann es nicht herausfinden.
Akzeptierte Antwort:
echo $(curl -s -I https://google.com|grep Server)|cat -A
zeigt, dass der von curl zurückgegebene Wert ein ^M (ein Wagenrücklauf) hat. Wenn Sie die Ausgabe von curl ausdrucken, bringt der Wagenrücklauf den „Cursor“ zurück zum Anfang der Zeile, wo er dann das „abc“ ausgibt und „Serv“ überschreibt.
Bei Ihrem zweiten Versuch hat der Wagenrücklauf keine offensichtliche Wirkung.