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

1

Como faço para que isso funcione 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.

UPDATE: Eu só quero agradecer a vocês pela ajuda. O problema não estava relacionado à minha sintaxe. O erro ocorreu devido ao texto que estava sendo formatado e que criou um problema. Eu cortei usando os modificadores de texto como delimitadores e consegui puxar os dados com sucesso. Eu usei ambas as soluções recomendadas para tornar meu script mais limpo. Obrigado!

    
por poisonjam 21.11.2017 / 13:12

2 respostas

3

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

function1() { strings /.sh_history | grep "$@"; }
variable1=$(function1 foo)
    
por 21.11.2017 / 13:46
2

Use eval :

variable1='strings /.sh_history | grep'
variable2=$(eval "$variable1 foo")
    
por 21.11.2017 / 13:33

Tags