Мне было интересно, если есть способ узнать оболочку по умолчанию текущего пользователя в сценарии оболочки?
Вариант использования: я работаю над сценарием, который устанавливает псевдоним для команды, и этот псевдоним устанавливается в сценарии оболочки.
!# /bin/bash
alias = 'some command to set the alias'
В скрипте есть логика, где он пытается найти оболочку по умолчанию для пользователя, который выполняет скрипт и добавляет этот псевдоним в соответствующий файл ~ / .bashrc или ~ / .zshrc
Но так как я добавляю shebang в начало сценария и явно прошу его использовать bash, ответы, размещенные здесь, всегда возвращают bash, как и ожидалось, хотя я выполняю этот сценарий на терминале ZSH.
Есть ли способ получить тип оболочки, где скрипт выполняется независимо от установленного Шебанга?
Я ищу решение, которое работает как на Mac, так и на всех бистро на основе Linux.
/etc/passwd
имеет на OSX? Я быстро посмотрел в Интернете, и кажется, что оболочка есть, но не имя пользователя. Идентификатор пользователя все еще там, хотя, почему бы вам не использовать это?