Inicialización de variables con variable interna.

Inicialización de variables con variable interna.

¿Cómo haría para que esto funcione en ksh?

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

Básicamente, me gustaría usar variable1 como una cadena para usar con un comando para declarar una variable.

ACTUALIZACIÓN: El problema en realidad no estaba relacionado con mi sintaxis. El error se debió a que se estaba formateando el texto, lo que creó un problema. Corté usando los modificadores de texto como delimitadores y pude extraer los datos con éxito. Utilicé las dos soluciones recomendadas para que mi script fuera más limpio.

Respuesta1

Si desea almacenar el código shell, utilicefunciones:

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

Respuesta2

Usar eval:

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

información relacionada