Ich habe mich gefragt, ob es eine Möglichkeit gibt, die Standard-Shell des aktuellen Benutzers in einem Shell-Skript herauszufinden.
Anwendungsfall: Ich arbeite an einem Skript, das einen Alias für einen Befehl festlegt, und dieser Alias wird in einem Shell-Skript festgelegt.
!# /bin/bash
alias = 'some command to set the alias'
Das Skript enthält eine Logik, die versucht, die Standard-Shell des Benutzers zu finden, der das Skript ausführt, und diesen Alias in die entsprechende Datei ~ / .bashrc oder ~ / .zshrc einfügt
Da ich jedoch einen Shebang im vorderen Bereich des Skripts hinzufüge und ihn explizit auffordere, bash zu verwenden, geben die hier veröffentlichten Antworten immer wie erwartet bash zurück, obwohl ich dieses Skript auf einem ZSH-Terminal ausführe.
Gibt es eine Möglichkeit, den Shell-Typ zu ermitteln, in dem das Skript ausgeführt wird, unabhängig vom Shebang-Set?
Ich suche nach einer Lösung, die sowohl auf dem Mac als auch im gesamten Linux-basierten Bistro funktioniert.
/etc/passwd
OSX? Ich habe einen kurzen Blick online geworfen und es scheint, dass die Shell da ist, nur nicht der Benutzername. Die Benutzer-ID ist immer noch da. Warum verwenden Sie das nicht?