@esskar
Ja, natürlich kenne ich backticks (das wäre ja einfach), aber mit Expect startet man einen Prozess per Expect-API. Backticks alleine genügen nicht, da ich mit Expect einen Dialog (per STDIN/STDOUT des gestarteten Prozesses) handeln muss. Das sieht etwa so aus (<...> ist natürlich nicht PERL-Syntax, sondern bezeichnet einen Regex (<PATTERN>) bzw. einen String (<RESPONSE>)):
$exp->raw_pty(1);
$exp->spawn(sprintf("%s %s -l %s %s", $cmd, $sshOpt, $userObj->user(), $remoteHost));
$exp->expect(10000, [ <PATTERN 1> => sub { $_[0]->send(<RESPONSE 1>); } ]);
...
$exp->expect(10000, [ <PATTERN n> => sub { $_[0]->send(<RESPONSE n>); } ]);
So, und bei dem Versuch, das Problem näher zu erklären, bin ich auf die Lösung gekommen: Da ich zur Erkennung der Ausgaben des Prozesses (auf die ich reagieren will, einen Regex angebe, frage ich nach dem entsprechenden
$exp->expect(10000, [ <PATTERN> => sub { $_[0]->send(<RESPONSE>); } ]);
einfach $1 ab, der dann den Match enthält.
Danke also für Deine Antwort, denn nur dadurch musste ich das Problem näher spezifizieren und kam zur Lösung.
Cheers, Doc