perlquestion
perl_zen
<p>I have the following perl issue: </p>
<p>I am running a script that is executed by my regular user. I need to su to other users throughout the execution of this script, which will require me to enter some information from the UNIX command line. When I su, I am prompted for the password, I enter the password, the password is accepted (& updates to the other user) but the scripts returns to the UNIX prompt rather than continuing with the remainder of the script. </p>
<p>Linux 4.1.2</p>
<p>Perl 5.8.8</p>
<p>What am I doing wrong here? Here is my code sample:</p>
<code>
&Chg_User ($other_user);
&Chg_Directory ($dir_location);
## the sub_routines below
sub Chg_User {
my @chg_args = ("su, $_[0]");
my $chg_result = system(@chg_args); # updates to user but returns to the UNIX command prompt
print ("cOmMaNd LiNe \n"); #never gets here unless I type exit at the UNIX command prompt
if ( $chg_result == -1) {
print "wrong password: $!\n";
exit (-1);
}
}
sub Chg_Directory {
system (cd, $_[0]);
}
</code>