Se eu entendi bem, não realmente.
Sua pergunta se resume em: estou executando foobar
do shell "principal" ou echo $(foobar)
(substituição de comando)?
foobar
pode testar o seguinte
-
tty
(estou sob um tty?) -
$SHLVL
(quantos pilha de casca?)
Dependendo da sua necessidade, você pode armazenar e comparar SHLVL
var, isso supõe que você (seu shell) é aquele que executa o comando.
Eu coloquei quote arroud main, porque não existe shell principal, você tem loggin shell (com tty), shell bifurcado do cron, daemons (mails, apache), mas nenhum shell "principal".
editar:
como apontado SHLVL pode ser difícil de usar
archemar@home> cat t2.sh
echo "$SHLVL" $1
archemar@home> . ./t2.sh $SHLVL
3 3
archemar@home> ./t2.sh $SHLVL
4 3
archemar@home> ./t2.sh $(./t2.sh)
4 4
archemar@home>