On Sat, 2009-02-28 at 17:04 -0500, David Boyce wrote: > On Sat, Feb 28, 2009 at 4:51 PM, Paul Smith <[email protected]> wrote: > In this example you actually don't even need to export > QA_STEP, since > only the shell is expanding it. But, if you do really need to > export it > then please do it portably: > > test: > @QA_STEP=start; export QA_STEP; <do-something>
> Since we're into pet peeves, and since as you note make uses /bin/sh, > why not push > > > test: > @QA_STEP=start <do-something> > > as the recommended "elegant" option? It's worked on every /bin/sh ever > made and it's the way one-shot exporting was originally designed to > work. In the original situation: export FOO=bar; touch $FOO changing it to: FOO=bar touch $FOO won't work since $FOO is expanded before FOO is assigned. You're absolutely right, of course; in the case quoted above it's better to do it your way, _but_ IFF <do-something> is a single command. If it's a longer script where QA_STEP is needed in multiple commands, you'd need to export separately still. Anyway, I wasn't trying to give a master class in shell programming best practices, I just wanted to get rid of obvious non-portabilities :-) -- ------------------------------------------------------------------------------- Paul D. Smith <[email protected]> Find some GNU make tips at: http://www.gnu.org http://make.mad-scientist.us "Please remain calm...I may be mad, but I am a professional." --Mad Scientist _______________________________________________ Help-make mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-make
