Ou o que estou perguntando aqui é extremamente pouco ortodoxo / não convencional / arriscado, ou minhas habilidades no Google-fu simplesmente não estão à altura do problema ...
Em um bash
script de shell, há alguma maneira fácil de saber se ele está sendo originado por outro script de shell ou está sendo executado por si só? Em outras palavras, é possível diferenciar entre os dois comportamentos a seguir?
# from another shell script
source myScript.sh
# from command prompt, or another shell script
./myScript.sh
O que estou pensando em fazer é criar um shell script semelhante a utilitários, contendo bash
funções que podem ser disponibilizadas quando originadas. Quando este script estiver sendo executado por si só, eu gostaria que ele executasse certas operações, com base nas funções definidas também. Existe algum tipo de variável de ambiente que este script shell pode captar, por exemplo
some_function() {
# ...
}
if [ -z "$IS_SOURCED" ]; then
some_function;
fi
De preferência, estou procurando uma solução que não exija que o script do chamador defina quaisquer variáveis de sinalizador.
edit : Eu sei a diferença entre procurar e executar o script, o que estou tentando descobrir aqui se é possível dizer a diferença no script que está sendo usado (nos dois sentidos).
.
comando, mas sobre como detectar se um script foi originado ou executado normalmente (ou seja, em uma sub-camada).