in reply to Shebang behavior with perl
I've been exploring the use of:
sample:#!/bin/sh echo "This is shell" SPECIAL_VAR=1 export SPECIAL_VAR eval "exec perl -x -S $(dirname $0)/$(basename $0) ${1+\"\$@\"}" #! -*- perl -*- -w use strict; print "This is Perl\n"; print "ARGV:".join(':',@ARGV)."\n"; print "SPECIAL_VAR: $ENV{SPECIAL_VAR}\n";
as a means of initializing an environment prior to execution of given perl code. The above configuration will preserve quote strings so calls like:
sample -multi "hello there" -single one
Will keep the "hello there" as a single value in ARGV. The dirname/basename combo supports execution from ./ or any other path as dirname will return '.' if the script is called without a path
The intent is to use "source .initenv" in the shell code to load environment initialization code shared across several perl scripts.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Shebang behavior with perl
by MidLifeXis (Monsignor) on Mar 02, 2015 at 18:16 UTC | |
by tye (Sage) on Mar 02, 2015 at 18:33 UTC | |
by MidLifeXis (Monsignor) on Mar 02, 2015 at 18:57 UTC | |
by tye (Sage) on Mar 02, 2015 at 22:29 UTC | |
by BrowserUk (Patriarch) on Mar 03, 2015 at 06:40 UTC | |
| |
by tye (Sage) on Mar 03, 2015 at 05:41 UTC | |
|
Re^2: Shebang behavior with perl
by Corion (Patriarch) on Mar 02, 2015 at 18:06 UTC |