
¿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")