Zastanawiałem się, czy w skrypcie powłoki można znaleźć domyślną powłokę bieżącego użytkownika?
Przypadek użycia: Pracuję nad skryptem, który ustawia alias dla polecenia, a ten alias jest ustawiony w skrypcie powłoki.
!# /bin/bash
alias = 'some command to set the alias'
W skrypcie jest logika, w której próbuje on znaleźć domyślną powłokę użytkownika, który wykonuje skrypt i dodaje ten alias do odpowiedniego pliku ~ / .bashrc lub ~ / .zshrc
Ale kiedy dodałem shebang na początku skryptu i wyraźnie prosiłem go o użycie basha, odpowiedzi zamieszczone tutaj zawsze zwracają bash zgodnie z oczekiwaniami, chociaż wykonuję ten skrypt na terminalu ZSH.
Czy istnieje sposób na uzyskanie typu powłoki, w którym skrypt jest wykonywany, niezależnie od zestawu shebang?
Szukam rozwiązania, które działa zarówno na Macu, jak i na wszystkich bistro opartych na systemie Linux.
/etc/passwd
ma na OSX? Rzuciłem okiem w Internecie i wygląda na to, że jest tam powłoka, ale nie nazwa użytkownika. Identyfikator użytkownika wciąż tam jest, dlaczego tego nie użyjesz?