Inicialização de variável com variável interna

Inicialização de variável com variável interna

Como eu faria isso funcionar no ksh?

variable1="$(strings /.sh_history | grep '^\user' | tail -1 | cut -d' ' -f2)"
variable2="$(command ${variable1})"

Basicamente, eu gostaria de usar a variável1 como uma string para usar com um comando para declarar uma variável.

ATUALIZAÇÃO: O problema não estava realmente relacionado à minha sintaxe. O erro ocorreu devido à formatação do texto, o que criou um problema. Cortei usando os modificadores de texto como delimitadores e consegui extrair os dados com sucesso. Usei as duas soluções recomendadas para tornar meu script mais limpo.

Responder1

Se você quiser armazenar código shell, usefunções:

function1() { strings /.sh_history | grep "$@"; }
variable1=$(function1 foo)

Responder2

Usar eval:

variable1='strings /.sh_history | grep'
variable2=$(eval "$variable1 foo")

informação relacionada