
Hallo, das liegt daran, dass das Hallo? Nicht als String angegeben ist und daher die Shell die File Name Expansion durchführt. Hat also nichts mit dem echo-Kommando zu tun. Wenn man dieses verhindern möchte kann man Echo "Hallo?" ausführen. So gesehen hast Du alles richtig erkannt: Bevor das Echo die Argumente bekommt führt die Shell bereits die Expansion durch. Du kannst das auch mit set -f in der Shell abschalten. Dann funktioniert die File Name Expansion aber insgesamt in der Shell nicht mehr, bis Du sie mit set +f wieder einschaltest. LG Gebhard -----Ursprüngliche Nachricht----- Von: Handwerker, Jan (IMK) [mailto:jan.handwerker@kit.edu] Gesendet: Freitag, 15. Januar 2016 11:33 An: opensuse-de Betreff: Mich erstaunendes Verhalten von echo in der bash Liebe Liste, heute bin ich auf ein Verhalten von echo innerhalb der bash gestoßen, dass mich überrascht. Ich dachte bisher, echo gibt Strings aus. Ein echo Hallo? sollte demnach eine Zeile mit dem String "Hallo?" ausgeben. Tut es auch meistens. Wenn aber im entsprechenden Verzeichnis eine Datei mit dem Namen "Hallo!" existiert, dann erscheint "Hallo!" Wenn zusätzlich auch noch eine Datei "Hallo." existiert, dann führt ein echo Hallo? zur Ausgabe von "Hallo! Hallo." Sprich: Vor der Ausgabe des Strings behandelt echo den String als Filenamen und sucht nach passenden Expansionen. Ist das so gewollt? Kann ich das abstellen? Ein wenig habe ich die Befürchtung, dass die Expansion schon stattfindet, bevor echo den String erhält, also auf Shell-Ebene. Kann ich das abstellen? Ich weiß, dass echo "Hallo?" das gewünschte Ziel erreicht. Gruß Jan -- _________________________________________________________________ Jan Handwerker http://www.imk-tro.kit.edu/jan.handwerker.php -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org