Ich muss Reihe von Befehlen in einem interaktiven Programm/Dienstprogramm mit parametrisierten Werten ausführen. Gibt es eine Möglichkeit, innerhalb von Heredoc zu loopen? Wie unten .. Nicht sicher, ob eval
hier helfen kann. Das folgende Beispiel scheint nicht zu funktionieren, da das interaktive System Befehle nicht zu erkennen scheint.Schleife in "heredoc" in Shell-Skripting
#!/bin/sh
list="OBJECT1 OBJECT2 OBJECT3"
utilityExecutable << EOF
for i in $list ; do
utilityCommand $i
done
EOF
Nun, ein Heredoc könnte eine Subshell sein. Das könnte funktionieren, aber normalerweise, was Sie wollen, wird nicht funktionieren (wie ich denke, Sie haben entdeckt). Da dein Beispiel theoretisch ist, kann ich nur antworten, dass es theoretisch möglich ist, deinen Code wiederherzustellen, so dass die for-Schleife außerhalb ist, "eingepackt" "utilityExecutable". Verwenden Sie echte Befehle in Ihrem Q, und es wird einfacher zu helfen sein. Viel Glück. – shellter
Ich denke, du musst besser erklären, was du zu tun versuchst. Möchten Sie eine Reihe von Eingabezeilen an 'utilityExecutable' senden? – rici
@rici, ja Ich muss eine Reihe von Befehlen innerhalb der UtilityExecutable senden/ausführen, ohne das Dienstprogramm zu beenden, bis alle Befehle beendet sind. ist das mit heredoc noch möglich? – Kevin