Удаленный в настоящий момент самоответ верен, насколько это возможно. В приглашении %(!.#.$)
расширится до #
, если эффективный идентификатор пользователя оболочки равен 0, в противном случае $
.
Однако учтите, что если текущее приглашение имеет значение, подобное PS1='%(!.#.$) '
просто запуск привилегированной оболочки может не сохранить текущее значение PS1
, даже если он был экспортирован. Например, в macOS файл по умолчанию /etc/zshrc
явно устанавливает значение PS1
, отбрасывая любое значение, которое вы ожидаете "унаследовать".
При этом я бы рекомендовал не использовать $
в приглашении, так как он тесно связан с потомками оболочки Bourne, которые не слишком сильно отличаются от стандартного интерактивного поведения. zsh
предоставляет большое количество функций, разработанных явно для (и противоречащих стандартному) интерактивного использования, поэтому приглашение %
обеспечивает хорошее напоминание об этом.