Вы можете использовать заполнитель во время загрузки завершений; этого должно быть достаточно, чтобы обмануть ваши глаза. Это, очевидно, работает, только если время, требуемое source /etc/bash_completion
, меньше, чем время, необходимое вам для ввода и выдачи первой команды оболочки, в противном случае оно также будет отложено.
Идея состоит в том, чтобы повторить поддельный PS1
, получить завершение и, наконец, ослабить терминал.
Предположим, что ваш PS1
\u@\h:\w\$
, вы можете написать что-то вроде:
echo -ne "$USER@$HOSTNAME:${PWD/$HOME/\~}\$ "
source /etc/bash_completion
echo -ne '\e[2J\e[H'
Куда:
2J
стирает терминал;
H
переместите курсор в верхний правый угол.
Примечание: вы можете проверить, является ли пользователь root и использовать #
вместо $
для согласованности:
echo -ne "...$([ $UID = 0 ] && echo '#' || echo '$') "
Примечание. Удаление \e[2J
позволяет избежать мерцания, но оставляет ненужные символы, если заполнитель длиннее, чем фактическое приглашение.