in reply to Passing values from Perl script to shell script
The following works for me. Perl code:
#!/usr/bin/perl -w use strict; use warnings; use POSIX ":sys_wait_h"; my $var1 = 3; my $var2 = 5; system ("./perl651.sh", $var1, $var2); my $status = $?; if ($status == -1) { print "failed to execute: $!\n"; } elsif (WIFEXITED($status)) { print "exited with return code ".WEXITSTATUS($status)."\n"; } elsif (WIFSIGNALED($status)) { print "terminated by signal ".WTERMSIG($status)."\n"; } else { print "other status $status\n"; }
Shell code (filename = perl651.sh)
#!/bin/sh if [ $# -ne 2 ] then echo "Expecting 2 arguments, only $# provided" exit 1 fi # return code is sum of two arguments RC=`expr $1 + $2` echo "Sum of $1 + $2 is $RC" exit $RC;
Results:
Sum of 3 + 5 is 8 exited with return code 8
|
---|
In Section
Seekers of Perl Wisdom