Hi.
echo test\ntest
ergibt bei mir
testntest
Wo liegt der Fehler?
MfG
Anmeldungsdatum: Beiträge: 661 |
Hi. echo test\ntest ergibt bei mir testntest Wo liegt der Fehler? MfG |
||
Anmeldungsdatum: Beiträge: 297 |
echo test'\n'test |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 661 |
Danke. Aber Problem ist noch nicht gelöst. echo test'\n'test ergibt test'\n'test Ich wünsche mir aber test test |
||
Anmeldungsdatum: Beiträge: 297 |
wtf? bei mir ergibt echo test'\n'test test test |
||
![]() Anmeldungsdatum: Beiträge: 3272 |
Hi! echo -e test'\n'test tut es. ps. gefunden mit |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 661 |
Danke. Das -e flag hat mich gerettet. Merkwürdig, dass es bei Dir so ging Andy. |
||
Anmeldungsdatum: Beiträge: 3620 |
Du kannst übrigens auch Newlines direkt in den String hineinschreiben.
|
||
Anmeldungsdatum: Beiträge: 5792 |
Was im Gegensatz zu "\n" auch portabel, also POSIX-kompatibel ist. |
||
![]() Anmeldungsdatum: Beiträge: 5072 Wohnort: Brandenburg an der Havel |
linrunner schrieb:
Das Verhalten von GNU echo mit -e verletzt die POSIX-Spezifikationen, es ist daher eine gute Idee, sich gar nicht erst daran zu gewöhnen. Wenn man Sequenzen wie \n verwenden will, benutzt man am besten printf statt echo. |
||
![]() Anmeldungsdatum: Beiträge: 3272 |
Ah, wieder was gelernt. Es ist übrigens die bash mit der es ohne -e nicht funktioniert (und deren internes echo lt. man bash -e erfordert und unterstützt): #!/bin/bash echo "abcd\nefgh" liefert abcd\nefgh Die imho POSIX-kompatible dash macht es richtig: #!/bin/sh echo "abcd\nefgh" liefert abcd efgh |
||
Anmeldungsdatum: Beiträge: 5792 |
@linrunner: Es gibt hier kein „richtig“, beide Shells verhalten sich POSIX-kompatibel, denn:
Die Shell darf in diesem Fall machen, was sie will, sie könnte sogar das Dateisystem löschen und wäre dennoch POSIX-kompatibel. Auf implementierungsabhängiges Verhalten sollte man sich folglich nicht verlassen (das empfiehlt sogar der POSIX-Standard selbst). Deswegen ja auch mein vorheriger Beitrag. [1] IEEE Std 1003.1-2008, Shell & Utilities, 4. Utilities, echo |