O quello che sto chiedendo qui è estremamente poco ortodosso / non convenzionale / rischioso, o le mie abilità su Google Fu non sono proprio all'altezza ...
In uno bash
script di shell, c'è un modo semplice per dire se viene fornito da un altro script di shell o è gestito da solo? In altre parole, è possibile distinguere tra i seguenti due comportamenti?
# from another shell script
source myScript.sh
# from command prompt, or another shell script
./myScript.sh
Quello che sto pensando di fare è creare uno script di shell simile a utility che contenga bash
funzioni che possono essere rese disponibili quando acquistate. Quando questo script viene eseguito da solo, tuttavia, mi piace che esegua determinate operazioni, anche in base alle funzioni definite. Esiste una specie di variabile d'ambiente su cui questo script di shell può prendere, ad es
some_function() {
# ...
}
if [ -z "$IS_SOURCED" ]; then
some_function;
fi
Preferibilmente, sto cercando una soluzione che non richiede lo script del chiamante per impostare le variabili flag.
modifica : conosco la differenza tra sourcing ed esecuzione dello script, cosa sto cercando di scoprire qui se è possibile dire la differenza nello script che viene utilizzato (in entrambi i modi).
.
comando, ma di rilevare se uno script è stato fornito o eseguito normalmente (ovvero in una subshell).