Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
I thought this might come in handy for someone. This is a useful way to source a shell script to make environment variables available to your Perl script.
In our batch systems at work we primarily write our code in Perl. However, we have a number of small utilities written in shell that we use in debugging, plus we have a script that gets sourced on login that gives us access to our Database and other resources in the environment. In previous days we wrote a wrapper shell script which sourced the shell script prior to calling the Perl scripts, but this was tedious and you had to remember to use it if you ran one of the scripts from the command line, from cron, etc. Using this short bit of code, taking advantage of the '-s' option to Perl, we can eliminate the use of the wrapper script completely.
eval { exec ". ./env.sh; /usr/bin/perl -s $0 -env -- @ARGV"; } unless $env;
I've seen other solutions for this, but some rely on running the script as in a system() or open() call and then parsing the output of the 'env' command to read in and set any environment variables that were exported. If you've used other workarounds for this, I'd be interested in seeing those, too! Hope this helps someone out.

In reply to Sourcing shell scripts by tuxz0r

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chanting in the Monastery: (7)
As of 2024-04-25 11:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found