passe o parâmetro da função como nome em vez de como string

passe o parâmetro da função como nome em vez de como string

Com esta função:

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

Dá uma mensagem de erro quando escrevo:

repr test

Isso vê o argumento como string:

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

E não como nome:

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

Como posso resolver o problema?

informação relacionada