Variableninitialisierung mit interner Variable

Variableninitialisierung mit interner Variable

Wie kann ich dies in KSH zum Laufen bringen?

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

Grundsätzlich möchte ich variable1 als Zeichenfolge verwenden, um sie mit einem Befehl zum Deklarieren einer Variable zu verwenden.

UPDATE: Das Problem hatte eigentlich nichts mit meiner Syntax zu tun. Der Fehler lag an der Formatierung des Textes, die ein Problem verursachte. Ich habe mit den Textmodifizierern als Trennzeichen geschnitten und konnte die Daten erfolgreich abrufen. Ich habe beide empfohlenen Lösungen verwendet, um mein Skript übersichtlicher zu machen.

Antwort1

Wenn Sie Shell-Code speichern möchten, verwenden SieFunktionen:

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

Antwort2

Verwenden eval:

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

verwandte Informationen