To run a bash script (Example: bash-script.sh) from inside a perl script, you could use the following syntax:
system("sh", "bash-script.sh")
Note: Here, once the bash script completes execution it will continue with the execution of the perl script.
Example:
Perl Script: perl-script.pl
Bash Script: bash-script.sh
Below is a perl script “perl-script.pl” which calls an external bash script “bash-script.sh”.
#!/usr/bin/perl
use strict;
use warnings;
print "Running parent perl script. \n";
print "Starting to call external bash script\n";
# Sample Argument to be passed to the bash script
my $my_arg = "ARG1";
# With arguments - pass them inside quotes seperated by commas
system("sh", "bash-script.sh","$my_arg");
print "Back to parent perl script\n";
Below is the sample “bash-script.sh” which prints the variable.
#!/bin/bash echo "---Start of Bash script---" a=$1 echo "Argument from Perl script is" $a
To test, execute the perl script:
./perl-script.pl
Credits/References
https://stackoverflow.com/questions/3200801/how-can-i-call-a-shell-command-in-my-perl-script