Wie man eine spezielle Variable (zB: ~ Tilde) in bash manuell expandiert

Ich habe eine variable in meinem bash-Skript, dessen Wert ist, so etwas wie dieses:

~/a/b/c

Beachten Sie, dass es nicht aufgegliederten tilde. Wenn ich ls -lt auf diese variable (nennen wir es $VAR), bekomme ich kein solches Verzeichnis. Ich möchte die bash interpretieren/erweitern Sie diese variable, ohne Sie auszuführen. In anderen Worten, ich möchte die bash ausführen, eval, aber nicht ausgeführt der Befehl ausgewertet. Ist das möglich in der bash?

Wie kam ich zu verwalten, zu übergeben, diese in mein Skript ohne Erweiterung? Ich ging ein argument, um es mit doppelten Anführungszeichen.

Diesen Befehl ausprobieren, um zu sehen, was ich meine:

ls -lt "~"

Dies ist genau die situation, die ich bin in. Ich will die tilde erweitert werden. In anderen Worten, was sollte ich ersetzen magic mit machen diese beiden Befehle identisch:

ls -lt ~/abc/def/ghi

und

ls -lt $(magic "~/abc/def/ghi")

Beachten Sie, dass ~/abc/def/ghi möglicherweise oder ist nicht vorhanden.

InformationsquelleAutor der Frage madiyaan damha | 2010-10-18

Schreibe einen Kommentar