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: