Старое соглашение между оболочками заключается в том, что если оболочка вызывается с использованием имени, начинающегося с -
, она должна инициализироваться как оболочка входа в систему. Ваш эмулятор терминала следует этому соглашению, когда он выполняет для вас zsh
.
Вы можете наблюдать это, используя флаг -l
для встроенного zsh
exec
(который добавляет начальный -
к названию команды).
% ( exec bash -c 'echo $0')
bash
% ( exec -l bash -c 'echo $0')
-bash
Эффект ведущего -
обычно эквивалентен запуску оболочки с опцией -l
.