Как я могу определить тип оболочки? т.е. традиционно ли это sh, bash, ksh, csh, zsh и т.д.
Обратите внимание, что проверка $SHELL
или $0
не будет работать, потому что $SHELL
не задается всеми оболочками, поэтому, если вы запустите в одной оболочке, а затем запустите другую, у вас может быть старый $SHELL
.
$0
сообщает только, где находится бинарный файл оболочки, но не говорит вам, является ли /bin/sh
реальной оболочкой Bourne или bash.
Я предполагаю, что ответ будет "попробовать некоторые функции и посмотреть, что происходит", поэтому, если кто-нибудь может указать мне на script, который сделает это, это будет здорово.