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