Wenn ich richtig liege, pwd
ist ein Befehl, PWD
ist eine Variable (Name) und -
in cd -
ist ein Operand.
Welche Typen von ~
, ~-
, ~+
, *
meinen sie $HOME
, das zuvor besuchte Verzeichnis, das aktuelle Verzeichnis und die Dateien im aktuellen Verzeichnis? (aus der Sicht der Programmiersprachen)
Sind das Variablennamen? Wenn ja, warum echo $~
funktioniert es nicht?
Warum *
funktioniert in:
for i in *; do ls "$i"; done
Antwort1
*
ist ein Metazeichen (oder Platzhalter), alle anderen sind tilde-prefix
Beispiele ( ~
ist Standard ~+
und ~-
sind Erweiterungen).
Es handelt sich bei keinem von ihnen um Variablen, daher ist es sinnlos, ihnen ein Präfix voranzustellen $
.
echo $~
funktioniert einwandfrei, es wird angezeigt $~
. Es gibt keine Erweiterung, da ~
nicht als Präfix verwendet wird.
for i in *; ...
funktioniert wie vorgesehen.