Thread qx mit mehreren Befehlen (19 answers)
Opened by xiconfjs at 2006-04-10 12:36

xiconfjs
 2006-04-11 13:05
#64617 #64617
User since
2006-01-21
79 Artikel
BenutzerIn
[Homepage] [default_avatar]
Und noch zur Vervollständigung das Script bzw. der wichtige Teil.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
my $exp = Expect->spawn("sudo passwd -i opendirectory $user_name") or die "Cannot spawn passwd: $!\n";;
my $spawn_ok;
$exp->expect($timeout,
[
qr'New password:$',
sub {
$spawn_ok = 1;
my $fh = shift;
$fh->send("$user_password_new1\n");
exp_continue;
}
],
[
'Retype new password:$',
sub {
my $fh = shift;
print $fh "$user_password_new1\n";
exp_continue;
}
],
[
'password for root:$',
sub {
my $fh = shift;
print $fh "$admin_password\n";
exp_continue;
}
],
[
eof =>
sub {
if ($spawn_ok) {
$exp->hard_close();
$result = "1";
#die "\n";
} else {
$exp->hard_close();
$result = "0";
}
}
],
[
timeout =>
sub {
die "No login.\n";
}
],
'-re', qr'[#>:] $', #' wait for shell prompt, then exit expect
);


/Edit:

Habe eine noch eine Frage. Ich habe im moment am Anfang meines Scripts dies hier eingefügt...
Code: (dl )
$Expect::Log_Stdout = 1;

...damit die User nicht mit den Rückgaben des Programm gestört werden. Doch nun möchte ich die Ausgabe doch haben, nämlich zur Auswertung, doch wie bekomme ich es hin, dass der User die Ausgabe des Programms nicht sieht, aber ich sie weiterverwenden kann. Ich habs schon mit...
Code: (dl )
$exp->log_file($filehandle);

...versucht, aber da gibt er mit dann keine Ausgabe bei $filehandle, es steht nix drin.

Thx for help\n\n

<!--EDIT|xiconfjs|1144747410-->

View full thread qx mit mehreren Befehlen