Мой скрипт устанавливает некоторую среду varrible, которая будет использоваться Make-файлами, поэтому, поскольку каждая оболочка, bash (экспорт для установки varriable) и tcsh (setenv), мне нужно получить правильную оболочку типа, откуда мы запустили python, я попытался использовать $ SHELL varrriable, но он всегда давал мне sh в качестве моей оболочки.Получение текущего типа оболочки из сценария python
Есть ли способ, я могу получить нужный тип оболочки из сценария python или всегда будет выводить «SH» в качестве переменной $ SHELL.
Зачем вам нужна оболочка? 'subprocess. *' функции имеют аргументы для переменных среды! – ThiefMaster
'$ SHELL' дает вам оболочку входа, а не текущую оболочку. Почему бы не указать конкретную оболочку в Makefile или использовать '#!'? – cdarke
Мне нужно это, потому что разные пользователи могут иметь разные предпочтения оболочки, а скрипты должны обнаружить, из какой оболочки, пользователь ее вызвал, а затем на основе этого он должен вывести правильные данные varriables (setenv/export) для него. – Viks