jeff@quark.WV.TEK.COM (Jeff Beadles) (03/29/90)
rbottin@atl.calstate.edu (Richard John Botting) writes: > >Try inserting "; export MANPATH" after "MANPATH=/twolf7/dchen/man" > >If that makes it weork the explanation is: > 'sh' doesn't hand on variables to a subthing > unless you tell it to with an > export command... > PLUS > '[ -f $MANPATH/"$1".1 ]' is actually 'test -f $MANPATH/"$1".1' > > > >Dick Botting, >Department of computer science, >California State University, San Bernardino, CA 92407 > >rbottin@atl.calstate.edu >>INTERNET:rbottin@atl.calstate.edu (Compuserve) >paaaaar@calstate.bitnet This is not correct. The only reason that you would need to export the variable "MANPATH" is if you wanted to use it as an environmental variable in a child program/process. When you call a program (IE: test) with arguements on the command line, the shell WILL and does expand them before calling the program. Take the following example that passes shell variables as command arguements: -----------------cut here for look-------------------------- #!/bin/sh echo "\$1 is $1" exit 0 -----------------cut here for try-------------------------- #!/bin/sh ./look # No $VAR here. VAR='Hello-world' ./look $VAR # Here it is now. export VAR ./look $VAR # It's still here. exit 0 ---------------------End of sample scripts------------------- Notice the output of the scripts: Script started on Wed Mar 28 07:52:33 1990 jq:> ./try $1 is $1 is Hello-world $1 is Hello-world jq:> exit script done on Wed Mar 28 07:52:42 1990 Notice the effect of the "export" (None.) However, if the program were changed to look like this (And to use environment variables rather than command line arguements): -----------------cut here for look2-------------------------- #!/bin/sh echo "\$VAR is $VAR" exit 0 -----------------cut here for try2-------------------------- #!/bin/sh ./look2 # Should see nothing for $VAR VAR='Hello-world' ./look2 $VAR # Where is $VAR? export VAR ./look2 $VAR # There it is. exit 0 ---------------------End of scripts------------------- Now, notice the output of the scripts: Script started on Wed Mar 28 07:55:53 1990 jq:> ./try2 $VAR is $VAR is $VAR is Hello-world jq:> exit script done on Wed Mar 28 07:56:02 1990 This is what "export" is all about. Have fun! -Jeff -- Jeff Beadles jeff@quark.WV.TEK.COM Utek Engineering, Tektronix Inc. +1 503 685 2568 "Credo quia absurdum"