-----------------test2.sh-------------------------
#!/bin/sh
# If bash or ksh is not the current shell, try to set
[ $SHELL != /bin/ksh -a $SHELL != /bin/bash ] && {
if [ -x /bin/ksh ]
then
SHELL=/bin/ksh
elif [ -x /bin/bash ]
then
SHELL=/bin/bash
else
echo "Error: Unable to locate ksh or bash shell."
exit 1
fi
export SHELL
exec $SHELL $0 "$@"
}
function foo
{
echo "Im in $SHELL"
}
foo
--------------------------test.sh--------------------
#!/bin/sh
# If bash or ksh is not the current shell, try to set
[ $SHELL != /bin/ksh -a $SHELL != /bin/bash ] && {
if [ -x /bin/ksh ]
then
SHELL=/bin/ksh
elif [ -x /bin/bash ]
then
SHELL=/bin/bash
else
echo "Error: Unable to locate ksh or bash shell."
exit 1
fi
export SHELL
exec $SHELL $0 "$@"
}
./test2.sh || exit 1
[ $? == 0 ] && {
echo "Worked!!!"
exit 0
}
exit 1