將函數參數作為名稱而不是字串傳遞

將函數參數作為名稱而不是字串傳遞

有了這個功能:

repr() {
    declare -p $1 | cut -d '=' -f 2- > /tmp/.repr
    $1=$(</tmp/.repr)
    rm /tmp/.repr
}

當我編寫時,它會給出錯誤訊息:

repr test

這將參數視為字串:

repr() {
    declare -p 'test' | cut -d '=' -f 2- > /tmp/.repr
    'test'=$(</tmp/.repr)
    rm /tmp/.repr
}

而不是像名字一樣:

repr() {
    declare -p test | cut -d '=' -f 2- > /tmp/.repr
    test=$(</tmp/.repr)
    rm /tmp/.repr
}

我該如何解決這個問題?

相關內容