O lo que estoy preguntando aquí es extremadamente poco ortodoxo / poco convencional / arriesgado, o mis habilidades de Google-fu simplemente no están a la altura ...
En un bash
script de shell, ¿hay alguna manera fácil de saber si otro script de shell lo obtiene o se ejecuta solo? En otras palabras, ¿es posible diferenciar entre los siguientes dos comportamientos?
# from another shell script
source myScript.sh
# from command prompt, or another shell script
./myScript.sh
Lo que pienso hacer es crear un script de shell similar a las utilidades que contenga bash
funciones que puedan estar disponibles cuando se obtengan. Sin embargo, cuando este script se ejecute solo, me gustaría que realice ciertas operaciones, también en función de las funciones definidas. ¿Hay algún tipo de variable de entorno que este script de shell pueda detectar, p. Ej.
some_function() {
# ...
}
if [ -z "$IS_SOURCED" ]; then
some_function;
fi
Preferiblemente, estoy buscando una solución que no requiera que el script de llamada establezca ninguna variable de marca.
editar : Sé la diferencia entre el abastecimiento y la ejecución del script, lo que estoy tratando de descubrir aquí si es posible distinguir la diferencia en el script que se está utilizando (en ambos sentidos).
.
comando en absoluto, sino sobre la detección de si un script se ha originado o ejecutado normalmente (es decir, en una subshell).