Se você quiser armazenar código shell, use funções :
function1() { strings /.sh_history | grep "$@"; }
variable1=$(function1 foo)
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!
Se você quiser armazenar código shell, use funções :
function1() { strings /.sh_history | grep "$@"; }
variable1=$(function1 foo)
Use eval
:
variable1='strings /.sh_history | grep'
variable2=$(eval "$variable1 foo")