shell script with arguments within perl script

J

jay

Hi! I wanted to run the system command with in Perl script to execute
shell script with argument. I need to know the correct syntax for the
arguments.

Ex.)
#/opt/bin/perl

system("shellscript.sh" <arg1>, <arg2> <arg3>);

I am getting syntax error. If i get rid of the arg1-3 then the shell
script runs just fine.

thanks.
 
J

John Joyce

Hi! I wanted to run the system command with in Perl script to execute
shell script with argument. I need to know the correct syntax for the
arguments.

Ex.)
#/opt/bin/perl

system("shellscript.sh" <arg1>, <arg2> <arg3>);

I am getting syntax error. If i get rid of the arg1-3 then the shell
script runs just fine.

thanks.
in Ruby:

system( command, arg, arg, arg)

Returns true if command runs successfully, false otherwise.

There is also:

exec( command, arg, arg, arg)

Exact behavior is platform dependent. One might presume that since
Ruby borrows a fair amount from Perl, that there may be something
similar going on.
 
C

Chad Perrin

Hi! I wanted to run the system command with in Perl script to execute
shell script with argument. I need to know the correct syntax for the
arguments.

Ex.)
#/opt/bin/perl

system("shellscript.sh" <arg1>, <arg2> <arg3>);

I am getting syntax error. If i get rid of the arg1-3 then the shell
script runs just fine.

Are you using commas exactly as shown? If so, that's probably the
problem. Try this instead:

system("foo.sh", "bar", "baz", "qux");

. . where bar, baz, and qux are your arguments. You could also simply
do something like one of the following:

system("foo.sh bar baz qux");

my $foo = "foo.sh";
my @args = qw(bar baz qux");
system("$foo @args");

my @command_and_args = qw(foo.sh bar baz qux);
system("@command_and_args");

In each case, assuming the use of system() is the only thing on that
line of the program, the parentheses are optional.

You *are* using the strict and warnings pragmas -- right? You should
always include the following two lines at the beginning of any Perl
script while working on it to help with debugging and good programming
practice:

use strict;
use warnings;

You should also make use of perldoc, which should be installed on your
system. With the -f option, the perldoc command can be used to look up
information about a specific function. In this case, you can learn more
about how system() works with the following commmand, for instance:

perldoc -f system

I hope that helps.
 
C

Chad Perrin

Hi! I wanted to run the system command with in Perl script to execute
shell script with argument. I need to know the correct syntax for the
arguments.

Oh, one other thing -- you're asking this of a Ruby community, not a
Perl community. Since this was apparently posted via the forum, rather
than the mailing list or newsgroup, I suspect what you actually want
is the PerlMonks website:

http://www.perlmonks.org
 
R

Robert Dober

When there are people behaving strangly in nice restaurants one can
suspect that they are Critics (sp?) from Michelin or whatever
Guide(1).
Chad I guess you just got us our first "Toque" ;)

Cheers
Robert

(1) Although that is probably never the case.
 
C

Chad Perrin

When there are people behaving strangly in nice restaurants one can
suspect that they are Critics (sp?) from Michelin or whatever
Guide(1).
Chad I guess you just got us our first "Toque" ;)

Cheers
Robert

(1) Although that is probably never the case.

Uh, what? What does a hat have to do with this?

I think you lost me.
 
C

Chad Perrin

Uh, what? What does a hat have to do with this?

I think you lost me.

Never mind. I get it -- the purpose of the metaphor just slipped by me
for a moment there.

Thanks for the compliment.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,007
Latest member
obedient dusk

Latest Threads

Top