Ich möchte eine Funktion schreiben, die das Arbeitsverzeichnis ändert, indem sie den Namen einer bereits festgelegten Verzeichnisvariablen übergibt, wie:
foo () {
cd $"$1"
}
Wenn ich jedoch beispielsweise „foo links“ versuche, erhalte ich die Meldung „-bash: cd: links: Keine solche Datei oder kein solches Verzeichnis vorhanden“
Ist es möglich, das zu tun?
Antwort1
Sie können die Variablenindirektion verwenden:
foo () {
cd "${!1}"
}
dir=/mnt
foo dir
pwd # /mnt