CGI/Perl Guide | Learning Center | Forums | Advertise | Login
Site Search: in

  Main Index MAIN
Search Posts SEARCH
Who's Online WHO'S
Log in LOG

Home: Need a Custom or Prewritten Perl Program?: I need a program that...:
How to execute a shell command from a CGI script


New User

Aug 21, 2014, 2:50 AM

Post #1 of 2 (19592 views)
How to execute a shell command from a CGI script Can't Post

Hi All,

I want to access all the changes submitted in perforce and to display in the web page for a particular user. CGI Script:
#!/usr/bin/perl -wT
use CGI;
$cgi = CGI->new;
print $cgi->header;

print <<EndOfHTML;
<form action="post.cgi" method="POST">
<tr><td>Perforce User</td>
<td><select size="1" name="user">
<option name="antoine">antoine</option></select>
<td>Start Date</td><td><input name=startdate></td>
<td>End Date</td><td><input name=enddate></td>
<td colspan=2 align=\"center\"><input type=\"submit\" value=\"Sub
#!/usr/bin/perl -w
use CGI;
$ENV{ 'PATH' } = '/bin:/usr/bin:/usr/local/bin';
delete @ENV{ 'IFS', 'CDPATH', 'ENV', 'BASH_ENV' };

print header;
my %form;
foreach my $p (param()) {
$form{$p} = param($p);
my $user = $form{'user'};
my $output = system ("sudo -i -u avinodh p4 changes -u $user > /tmp/$u
print $output;
print "The active user is: ", `whoami`;
print end_html;

When we execute the script in the browser it is giving output as "256The active user is: www-data"[\b].

I have not added the validation part in the above script.

Please provide your inputs.

Thank You

Veteran / Moderator

Aug 21, 2014, 6:34 AM

Post #2 of 2 (19586 views)
Re: [antovinraj] How to execute a shell command from a CGI script [In reply to] Can't Post

The system function does not return the output of the command. It returns the exit code.

If you need the output of the command, then you need to use `` backticks or the qx() operator.

my $output = `sudo -i -u avinodh p4 changes -u $user > /tmp/$user`;


my $output = qx(sudo -i -u avinodh p4 changes -u $user > /tmp/$user);

However, since the command itself is redirecting the output to a file, I'm not sure what you expect to be capturing in $output.


Search for (options) Powered by Gossamer Forum v.1.2.0

Web Applications & Managed Hosting Powered by Gossamer Threads
Visit our Mailing List Archives