Bei folgendem Befehl ist klar, dass es um den Inhalt einer Variablen geht, weil vor dem Namen $ steht:
1 | echo $abc |
Woher weiss hingegen das Terminal bei folgendem Befehl, ob es sich bei abc um eine Datei handelt oder um eine Zeichenkette? :
1 | echo abc |
Ich hätte erwartet, dass es hier auch irgend ein Steuerzeichen geben würde, damit das Terminal weiss, ob ich eine Datei oder eine Zeichenkette meine. Z.B.
1 | echo °abc |
... würde bedeuten, dass die Datei abc gemeint ist. Wenn kein ° davor steht, würde das bedeuten, dass ich mit echo nur die Zeichenkette abc anzeigen lassen will, unabhängig davon, ob es so eine Datei gibt oder nicht. Allerdings gibt es das Steuerzeichen ° nicht. Dieses habe ich ja nur erfunden um zu zeigen womit ich Schwierigkeiten beim Verständnis habe.
Es gibt ja dann auch noch den Befehl wie:
1 | echo a* |
... der mir dann alle Dateien auflistet, die mit a beginnen.
Also hier die Frage: Es ist mir klar, woher das Terminal weiss, wenn ich mich im echo-Befehl auf eine Variable beziehe. Das sieht man am $ vor dem Namen. Aber woher weiss das Terminal beim Befehl "echo abc" ob sich abc auf eine Datei bezieht oder ob abc nur eine Zeichenkette ist, die angezeigt werden soll?