передать параметр функции как имя, а не как строку

передать параметр функции как имя, а не как строку

С помощью этой функции:

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
}

Как решить эту проблему?

Связанный контент