[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: bash question



Thanks Eric,
I tried sourcing scr2 and it works faster then CALLING scr2.

Eugene.

On Mon, 22 Feb 1999, E.L. Meijer (Eric) wrote:

> > 
> > Hi ppl,
> > As far as I did not find the answer in bash manual, I hope that
> > someone can help me here. Let say I have two bash scripts and I need the 
> > parameter which is set in scr2 to be visable in scr1. 
> > 
> > scr1:
> >       #!/bin/sh
> >       export LANG=lang1
> >       echo "LANG is $LANG in $0 "
> >       scr2
> >       echo "LANG is $LANG in $0"
> > scr2:
> >       #!/bin/sh
> >       echo "LANG is $LANG in $0 "
> >       export LANG=lang2
> >       echo "LANG is $LANG in $0"
> > 
> > However the output is :
> > LANG is lang1 in ././scr1
> > LANG is lang1 in ./scr2 
> > LANG is lang2 in ./scr2
> > LANG is lang1 in ././scr1
> >           ^ 
> >           ... so I have got here the old value of LANG.
> > The question is it possible to get the NEW value which is assigned in
> > scr2?
> 
> Yes.  You need to source the script instead of executing it in a
> separate shell.  Then scr2 can actually be viewed as a part of scr1,
> but only contained in another file.  You source a script with the `.'
> command:
> 
> . scr2
> 
> The problem with this is that nothing in scr2 is separated from scr1, so
> the usefulness of having two scripts is gone.  As an alternative you
> could let scr2 print the new value, like
> 
> scr2:
>        #!/bin/sh
>        export LANG=lang2
>        echo $LANG
> 
> scr1:
>        #!/bin/sh
>        export LANG=lang1
>        echo $LANG
>        LANG=`scr1`
>        echo $LANG
> 
> But this may not be what you want.  The `export' command only works
> `downward':  the exported variable is put in the environment of shells
> and programs called from the shell where it is used.
> 
> HTH,
> Eric
>        
> 
> -- 
>  E.L. Meijer (tgakem@chem.tue.nl)          | tel. office +31 40 2472189
>  Eindhoven Univ. of Technology             | tel. lab.   +31 40 2475032
>  Lab. for Catalysis and Inorg. Chem. (TAK) | tel. fax    +31 40 2455054
> 
> 
> -- 
> Unsubscribe?  mail -s unsubscribe debian-user-request@lists.debian.org < /dev/null
> 

Eugene Sevinian

----------------------------
CRD, YerPhI, 375036, Armenia
URL: http://crdlx5.yerphi.am/
Phone: 374-2-344873


Reply to: