Beachten Sie, dass die ' echo "$var" | command
Operationen bedeuten, dass die Standardeingabe auf die Zeile(n) beschränkt ist, die geechot werden. Wenn Sie wollen, dass auch das Terminal verbunden wird, müssen Sie sich etwas einfallen lassen:
{ echo "$var"; cat - ; } | command
( echo "$var"; cat - ) | command
Das bedeutet, dass die erste(n) Zeile(n) der Inhalt von $var
aber der Rest kommt von cat
seine Standardeingabe lesen. Wenn der Befehl nichts allzu Ausgefallenes tut (versuchen Sie, die Befehlszeilenbearbeitung zu aktivieren, oder führen Sie ihn aus wie vim
tut), dann wird es gut sein. Andernfalls müssen Sie sich wirklich etwas einfallen lassen - ich denke expect
oder eines seiner Derivate ist wahrscheinlich geeignet.
Die Schreibweisen in der Befehlszeile sind praktisch identisch - nur das zweite Semikolon ist bei den geschweiften Klammern notwendig, während es bei den geklammerten Klammern nicht notwendig ist.