Igen. Összeraktam egy kis scriptet:
REF_SHELL=`ps -e -o pid,cmd | grep $$ | grep -v grep |awk '{print $2}'`
if [ -h $REF_SHELL ]
then
echo "using shell: $REF_SHELL -> " `readlink $REF_SHELL`
else
echo "using shell: $REF_SHELL"
fi
Ez a hashbang -re való tekintet nélkül megmutatja ki a shell.
Akkor most megpróbálom megérteni, mit is jelent a "The commands in the specified file are read and executed by the shell." - pl. mi van ha a másik script egy másik shell -re hivatkozik a hashbang -ben.
szerkesztve:
Nohát írtam egy ilyet:
#! /bin/sh
#
. ./what-shell.sh
#
echo "SHELL_REF = $SHELL_REF"
A ./what-shell.sh a fenti kis kódot tartalmazza.
Nohát, a $SHELL_REF -ről a "meghívó" scriptnek fogalma nincs :(
Ha jól értem, ez a szintaxis csak arra jó, hogy amikor meghívjuk a másik scriptet, azt ugyanaz a shell hajtja végre - azaz nem hív meg egy újabb shell -t, ami végrehajtja a scriptet. Viszont, hogy mi zajlik le abban a scriptben arról fogalma nincs tekintet nélkül arra, hogy ez bash vagy dash.
Viszont akkor nem világos mire jó meghívni az init scriptekben egy olyan scriptet, amiben "csak" egy kupac funkció van?
Ami még nagyon fontos lenne, hogy tudok-e a bash "source" parancsának megfelelő utasítást használni a dash -ban?
* Én egy indián vagyok. Minden indián hazudik.