On 2005-06-16, michael wrote: > Folks > > For some reason out of my control I need to pass the name of an env var > to a bash script and then, within said script, determine the value of > that env var. > > For example if my script is 'myScript' and assume I've done > > $ export INPUTFILE=/tmp/whateverandaday > > then how inside myScript do I get the value of INPUTFILE when all I can > pass to the script is the name of the env var, eg > > $ ./myScript INPUTFILE > > (and no I cannot pass $INPUTFILE directly for another reason [a later > part of the script calls a program which needs the env var name not its > value]) > > I've tried various combos inside the script like > echo ${$1} > but they don't work (the nearest I can get is > set | grep $1 > but that's ugly IMHP)
In bash you can do: var=$1 INFILE=${!var} To make it portable, so that your script can be run in any Bourne-type shell: eval "INFILE=\${$1}" -- Chris F.A. Johnson <http://cfaj.freeshell.org> ================================================================== Shell Scripting Recipes: A Problem-Solution Approach, 2005, Apress <http://www.torfree.net/~chris/books/cfaj/ssr.html> -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]