Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: Redirect output of the system() command

by jwkrahn (Monsignor)
on Jul 11, 2012 at 05:41 UTC ( #981017=note: print w/ replies, xml ) Need Help??


in reply to Redirect output of the system() command

system( $config->{wkhtmltopdf_path}, @options, $source_file, $config-> +{result_filename}, ">/dev/null", "2>&1" );

Your problem is that you are passing a list to system and when system is passed a list it does not use the shell, but redirection (>/dev/null 2>&1) requires the shell so you have to put everything into a string:

system "$config->{wkhtmltopdf_path} @options $source_file $config->{re +sult_filename} >/dev/null 2>&1";


Comment on Re: Redirect output of the system() command
Select or Download Code
Re^2: Redirect output of the system() command
by davido (Archbishop) on Jul 11, 2012 at 06:26 UTC

    Bingo! That's the answer:

    Note that argument processing varies depending on the number of arguments. If there is more than one argument in LIST, or if LIST is an array with more than one value, starts the program given by the first element of the list with arguments given by the rest of the list. If there is only one scalar argument, the argument is checked for shell metacharacters, and if there are any, the entire argument is passed to the system's command shell for parsing (this is /bin/sh -c on Unix platforms, but varies on other platforms). If there are no shell metacharacters in the argument, it is split into words and passed directly to execvp , which is more efficient.

    (Thus saith system.)

    Once the OP fixes his system usage, it may be worthwhile to go investigate Capture::Tiny. Rather than worrying about the portability issues that arise when dealing with the shell, leverage the power of CPAN by using Capture::Tiny. It's such a handy module, I wish I had found it several years ago.


    Dave

Re^2: Redirect output of the system() command
by Gangabass (Priest) on Jul 11, 2012 at 08:52 UTC

    Your code will not work because I can use folders with space in the name and also some of my options contain quotes.

    But the direction is right so thank you.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://981017]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (8)
As of 2014-08-23 16:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (174 votes), past polls