2012-08-09 13 views
5

Angenommen, gespeichert sind, auszuführen gibt es eine bash Variablewie zwei Befehle in einer Bash-Variable

run1 = "date"

Ich brauche date auszuführen, indem

$ {run1}

Und es funktioniert, seit es pri nts aktuelle Zeit. Aber wenn ich legte zwei Befehle in der Variablen,

run2 = "date echo foo"

Ich kann nicht ausgeführt werden, die gespeicherten Befehle in Variable run2, da ${run2} klagt

Datum ;: nicht

Antwort

5

Versuchen gefunden Befehl:

eval ${run2} 

Dies sollte helfen.

+0

es funktioniert ... vielleicht bin ich neugierig, aber können Sie erklären, warum es für '' run1'' funktioniert, aber nicht für '' run2'' ... – Richard

+1

Weil es zitiert wird, ist das Semikolon Teil von das erste Wort nach dem Entfernen des Zitats, kein syntaktisches Element, um zwei Befehle zu trennen. – chepner

2

Versuchen Sie . Dadurch wird die Variable als eine Folge von auszuführenden Befehlen interpretiert.

Verwandte Themen