Вы можете использовать заполнитель во время загрузки завершений; этого должно быть достаточно, чтобы обмануть ваши глаза. Это, очевидно, работает, только если время, которое требуется, 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
избежать мерцания, но в нем останутся ненужные символы, если заполнитель будет длиннее, чем фактическое приглашение.