( tovis | 2012. 01. 21., szo – 16:19 )

Hazudós vagyok, illetve a saját figyelmetlenségem ártatlan áldozata :D
Kicsit átalakítva az előző scripteket (mellőzve az elírásokat):
[code]
#! /bin/sh
# első script: what-shell.sh
export REF_SHELL=`ps -e -o pid,cmd | grep $$ |grep -v grep | awk {print $2}`
if [ -h $REF_SHELL ]
then
export REF_SHELL=`readlink $REF_SHELL`
fi
echo "using shell: $REF_SHELL"

#! /bin/sh
# második script: prb-source.sh
. ./what-shell.sh
echo "REF_SHELL = $REF_SHELL
[code]

Így már működik, az hogy a második script megkapja a változót és annak értékét.
Érdekességek:
- Ha az első scriptben a hasbang -et átírom /bin/bash -ra (a második scriptben marad a /bin/sh - azaz jelen esetben dash) a REF_SHELL /dash lesz.
- Ha a második scriptben, a hashbang -er /bin/bash -ra teszem akkor REF_SHELL értéke /bin/bash lesz.
- Ha az eslő scriptben a második, feltételes értékadásból kiveszem aaz "export" kulcsszót akkor is a helyes érték "jön át" az első scriptbe vagyis dash (mindkét scriptben a hashbang /bin/sh).
- Miután kilépek a felhasználói shellbe (ahonnan futtattam a scripteket) a REF_SHELL elvész.
Ez így nekem tetszik!

* Én egy indián vagyok. Minden indián hazudik.