09-17-2009
Welcome to the forum adnan786.
There are a lot of ways in which you can call a shell script/command from perl script, such as you can use system, exec, or simply backticks. TMTOWTDI.
Reading out Process Management Chapter in Learning Perl would help you much definitely.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
hi,,
i have perl scipt with line :
system('./try.sh $t $d $m');
in shell scipt try.sh i have the line:
echo $1
its not printing value of $t that i hav passed..y is it so..i am running it from apache web server (2 Replies)
Discussion started by: raksha.s
2 Replies
2. Shell Programming and Scripting
Novice to perl here.
I have created a simple web page in perl, with only one submit button. I would like to execute a bash script on the same server when this button is clicked on.
Is this possible in perl? I have spent a few days researching this and am unable to find any useful information.... (0 Replies)
Discussion started by: pleonard
0 Replies
3. Shell Programming and Scripting
Dear all,
Could you please advice as I when call function i found the following error
" refills: command not found" note that refills is function name.
following also the function and how i call it
function refills
{
echo "formatting refills and telepin" >> $log
awk -F,... (20 Replies)
Discussion started by: ahmed.gad
20 Replies
4. Shell Programming and Scripting
In a bash script, one can call a perl command in the following manner, where "myperlcommand" is a perl command.
perl -e 'myperlcommand(arguments)'
perl -e 'print("UUUU"x4)'
Now, how can one call a bash command from within a perl script? (Suppose that mybashcommand is a bash... (1 Reply)
Discussion started by: LessNux
1 Replies
5. Shell Programming and Scripting
Hi all,
Here is my code:
my $x = `bash -c \" ls -l filename | awk '{print \$5}'\"`;
print "$x\n";
This will run the first part of the bash script but not the awk command. It therefore gives output of:
-rw-r--r-- 1 root root 13619200 2012-04-25 08:16 filename
I am actually trying to... (0 Replies)
Discussion started by: free2rhyme2k
0 Replies
6. Shell Programming and Scripting
Hi,
I am trying to run a python script embedded in bash script. But is throwing me an error. Please help.
Script:
#!/bin/bash
nohup /usr/bin/python /opt/web/http.py &
Error:
/usr/bin/python: can't open file '/opt/web/http.py': No such file or directory
Please help me on this. (6 Replies)
Discussion started by: maddy26615
6 Replies
7. Shell Programming and Scripting
Hi,
I have a script which will be executed using the below command,
bin/nutch crawl urls -dir /data/test/
bin/nutch - Script file
crawl, urls, /data/test/ - Parameters
-dir - Option
The above script should executed from a shell script named test.sh. I have the below code to execute... (2 Replies)
Discussion started by: vel4ever
2 Replies
8. Shell Programming and Scripting
I'm attempting to write a bash script that will create a network between virtual machines. It accepts three arguments: an RSpec that describes the network topology, and two list of machines (servers and clients).
I have a (working) Perl script that I want to call. This Perl script takes an RSpec... (6 Replies)
Discussion started by: mecaka
6 Replies
9. Shell Programming and Scripting
Hi everyone,
i have the following script.sh:
foo='lsusb | grep Webcam | cut -c16-18'
sudo /home/user/public/usbreset /dev/bus/usb/001/$foo
when i try to call this script from python using subprocess.call("script.sh", shell=True) it seems that only 'sudo /home/user/public/usbreset' is being... (6 Replies)
Discussion started by: hilfemir
6 Replies
10. UNIX for Beginners Questions & Answers
I am trying to use a batch file to automatically execute a bash script with no luck this far.
The batch script looks like this:
C:\Cygwin64\bin\bash test.sh
I have also tried this:
C:\Cygwin64\bin\bash "C:\Cygwin64\bin\test.sh"
Needless to say that the windows box has Cygwin... (7 Replies)
Discussion started by: Xterra
7 Replies
LEARN ABOUT DEBIAN
perl::critic::policy::inputoutput::prohibitbacktickoperators
Perl::Critic::Policy::InputOutput::ProhibitBacktickOperaUser(Contributed Perl DocPerl::Critic::Policy::InputOutput::ProhibitBacktickOperators(3pm)
NAME
Perl::Critic::Policy::InputOutput::ProhibitBacktickOperators - Discourage stuff like "@files = `ls $directory`".
AFFILIATION
This Policy is part of the core Perl::Critic distribution.
DESCRIPTION
Backticks are super-convenient, especially for CGI programs, but I find that they make a lot of noise by filling up STDERR with messages
when they fail. I think its better to use IPC::Open3 to trap all the output and let the application decide what to do with it.
use IPC::Open3 'open3';
$SIG{CHLD} = 'IGNORE';
@output = `some_command`; #not ok
my ($writer, $reader, $err);
open3($writer, $reader, $err, 'some_command'); #ok;
@output = <$reader>; #Output here
@errors = <$err>; #Errors here, instead of the console
CONFIGURATION
Alternatively, if you do want to use backticks, you can restrict checks to void contexts by adding the following to your .perlcriticrc
file:
[InputOutput::ProhibitBacktickOperators]
only_in_void_context = 1
The purpose of backticks is to capture the output of an external command. Use of them in a void context is likely a bug. If the output
isn't actually required, "system()" should be used. Otherwise assign the result to a variable.
`some_command`; #not ok
$output = `some_command`; #ok
@output = `some_command`; #ok
NOTES
This policy also prohibits the generalized form of backticks seen as "qx{}".
See perlipc for more discussion on using "wait()" instead of "$SIG{CHLD} = 'IGNORE'".
You might consider using the "capture()" function from the IPC::System::Simple module for a safer way of doing what backticks do,
especially on Windows. The module also has a safe wrapper around "system()".
AUTHOR
Jeffrey Ryan Thalhammer <jeff@imaginative-software.com>
COPYRIGHT
Copyright (c) 2005-2011 Imaginative Software Systems. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of this license
can be found in the LICENSE file included with this module.
perl v5.14.2 2012-06-07 Perl::Critic::Policy::InputOutput::ProhibitBacktickOperators(3pm)