¿Qué plataforma independiente forma de encontrar el directorio de shell ejecutable en shell script?

Según POSIX:

http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sh.html

Hay algunos casos donde no es obvio. Por ejemplo:

If the file is not in the current working directory,
the implementation may perform a search for an executable
file using the value of PATH, as described in Command Search and Execution.

Mi Bash 4.x no sigue esta regla opcional (debido a una preocupación de seguridad?), Así que no puedo probar cómo será en la vida real ...

¿Qué plataforma independiente forma de encontrar el directorio de shell ejecutable en shell script?

PD. tambiéndirname $0 caso falla con:

#!/bin/sh
echo $0
dirname $0

cuando tú:

$ sh runme.sh
runme.sh
.

Así que necesitas algo como:

CMDPATH=`cd $(dirname $0); echo $PWD`

Para que el código dependa solo de las capacidades de shell incorporadas, reescribo el código para:

PREVPWD=$PWD
cd ${0%${0##*/}}.
CMDPATH=$PWD
cd $PREVPWD

Este look feo pero no requiere bifurcar ningún ejecutable ...

Respuestas a la pregunta(2)

Su respuesta a la pregunta