Thread Ablauf bei zu langen Tasks (7 answers)
Opened by peterb at 2022-06-14 10:06

Linuxer
 2022-06-14 14:14
#194376 #194376
User since
2006-01-27
3870 Artikel
HausmeisterIn

user image
Kommt die unerwünschte Passwort-Abfrage mit einem eigenen Prompt daher? Ist dieser dann in $line zu sehen?

Dann könntest Du in der while Schleife $line überprüfen und ggfs. die Schleife abbrechen lassen.

Code (perl): (dl )
1
2
3
4
5
6
7
8
while ( my $line = <$pipe> ) {
    push @cmd, $line;
    if ( $line =~ m/password prompt:/ ) { # define your pattern for the password prompt
        # maybe empty or reset @cmd
        last; # end while loop
    }
  }
  close $pipe;


Evtl. taucht die PW-Abfrage über STDERR auf, dann wäre noch eine Ausgabeumleitung des aufgerufenen Kommandos sinnvoll ( 2>&1). Oder man wechselt auf ein IPC Modul, dass die Kanäle einzeln auffangen kann.

Alternativer Code zu oben:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
while ( my $line = <$pipe> ) {
    if ( $line !~ m/password prompt:/ ) { # define your pattern for the password prompt
        push @cmd, $line;
    } 
    else {
        # maybe empty or reset @cmd
        last; # end while loop
    }

  }
  close $pipe;

Last edited: 2022-06-14 14:16:46 +0200 (CEST)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Ablauf bei zu langen Tasks