是否可以編寫一個 bash 函數透過傳遞目錄變數的名稱來更改目錄?

是否可以編寫一個 bash 函數透過傳遞目錄變數的名稱來更改目錄?

我想編寫一個函數,透過傳遞已經建立的目錄變數的名稱來更改工作目錄,例如:

foo () {
   cd $"$1"
}

但是,當我嘗試時,例如 foo links 我得到 -bash: cd: links: No such file or directory

是否有可能做到這一點 ?

答案1

您可以使用變數間接:

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

dir=/mnt
foo dir
pwd  # /mnt

相關內容