Eu queria saber se existe uma maneira de descobrir o shell padrão do usuário atual dentro de um script de shell?
Caso de uso: Estou trabalhando em um script que define um alias para um comando e esse alias é definido em um script de shell.
!# /bin/bash
alias = 'some command to set the alias'
Há uma lógica no script em que ele tenta encontrar o shell padrão do usuário que executa o script e adiciona esse alias no respectivo arquivo ~ / .bashrc ou ~ / .zshrc
Mas, como estou adicionando um shebang na frente do script e solicitando explicitamente que ele use o bash, as respostas postadas aqui sempre retornam o bash conforme o esperado, embora eu esteja executando esse script em um terminal ZSH.
Existe uma maneira de obter o tipo de shell em que o script é executado independentemente do conjunto de shebang?
Estou procurando uma solução que funcione no Mac e em todos os bistrôs baseados em Linux.
/etc/passwdtem no OSX? Eu dei uma rápida olhada online e parece que o shell está lá, mas não o nome de usuário. O ID do usuário ainda está lá, por que você não usa isso?