¿Es posible escribir una función bash para cambiar de directorio pasando el nombre de una variable de directorio?

¿Es posible escribir una función bash para cambiar de directorio pasando el nombre de una variable de directorio?

Quiero escribir una función que cambie el directorio de trabajo pasando el nombre de una variable de directorio que ya se ha establecido como:

foo () {
   cd $"$1"
}

Sin embargo, cuando intento, por ejemplo, foo links obtengo -bash: cd: links: No existe tal archivo o directorio

Es posible hacer esto ?

Respuesta1

Puedes usar dirección indirecta variable:

foo () {
    cd "${!1}"
}

dir=/mnt
foo dir
pwd  # /mnt

información relacionada