-
Rápido e sujo (e possivelmente errado):
Quase sempre há uma variável de ambiente
$SHELL
da qual você pode aprender. Existem alguns casos extremos em que isso falhará, especialmente se um shell interativo for usado para iniciar outro. Os shells mais recentes também definem uma variável sobre si mesmos na forma de$BASH_VERSION
ou$ZSH_VERSION
. Eu não sei quesh
faz isso. -
Um pouco mais chique:
Como alternativa, a maioria dos shells interativos saberão o que são e fornecerão alguma saída útil se você executar algo como
echo $0
. Isso parece contar com as mesmas informações que você obteria se executasseps -fp $$
, o que recuperaria os dados do processo para o processo que iniciou o ps. -
Mais robusto:
Uma maneira que pode funcionar para alguns shells e ambientes que não possuem conveniência, como o conjunto de variáveis de ambiente, seria extrair os dados que você quer de proc e descobrir para qual caminho executável está apontando usando% código%. Isso tem a vantagem de fornecer informações sobre o executável que foi lançado, mesmo que fosse um link simbólico para outra coisa. Nesse caso, a variável
readlink -f /proc/$$/exe
pode estar mentindo para você.