Моя $PS1
переменная -
\[\033[36m\][\[\033[m\]\[\033[34m\]\u@\h\[\033[m\] \[\033[32m\]\W\[\033[m\]\[\033[36m\]]\[\033[m\] $
Я хочу сохранить те же цвета и текст, но подсказка должна быть выделена жирным шрифтом . Как мне это сделать?
Я просмотрел сеть и обнаружил, что это можно сделать с помощью tput bold
, но подсказка показалась мне неработоспособной, я, должно быть, делал это неправильно.
Полужирный установлен 01
, таким образом, необходимо добавить 01;
перед каждой спецификацией цветов:
\[\033[01;36m\][\[\033[m\]\[\033[01;34m\]\u@\h\[\033[m\] \[\033[01;32m\]\W\[\033[m\]\[\033[01;36m\]]\[\033[m\] $
Решение 1:
Вы пробуете что-то вроде этого:
PS1="\[\033[36m\][\[\033[m\]\[\033[34m\]\[\e[1m \u@\h \e[0m\] \[\033[32m\]\W\[\033[m\]\[\033[36m\]]\[\033[m\] $"
Для постоянного изменения для избиения подсказки вставляет его .bashrc
Решение 2: Использование tput
reset=$(tput sgr0)
bold=$(tput bold)
black=$(tput setaf 0)
red=$(tput setaf 1)
green=$(tput setaf 2)
yellow=$(tput setaf 3)
blue=$(tput setaf 4)
magenta=$(tput setaf 5)
cyan=$(tput setaf 6)
white=$(tput setaf 7)
user_color=$blue
PS1="\[$reset\]\[$cyan\][ \[$bold\]\[$user_color\]\u@\h\
\[$reset\]\[$blue\]\W\[$cyan\] ] \[$reset\]\[$reset\]\\$\[$reset\] "
При использовании человечности 18.04 выполните следующие команды
cp /etc/skel/.bashrc ~/.profile
Вот именно. У Вас будет полужирное user@host при подсказке
Я вижу, что существуют другие ответы, которые являются в значительной степени эвристическими. Однако, если у Вас есть более определенные потребности (как можно сделать в будущем), у меня есть сценарий, который может быть полезен Вам.
# "Colorize" the plain text.
#
# Usage:
#
# $ colorize "TEXT" COLOR ["STYLE"] [BACKGROUND]
#
# Notes:
# - STYLE may be either a single value or a space-delimited string
#
# Examples:
#
# $ colorize "Hey!" blue bold
# $ colorize "Yo!" red italic white
#
colorize() {
text="$1"
if [ "$color_support" = true ]
then
color="$2"
style=($3)
background="$4"
colors=(black red green yellow blue purple cyan white)
styles=(regular bold italic underline reverse)
sn=(0 1 3 4 7)
for n in {0..7}
do
[[ $color == ${colors[n]} ]] && color="3$n"
[[ $background == ${colors[n]} ]] && background="4$n"
for s in ${!style[@]}
do
[[ ${style[s]} == ${styles[n]} ]] && style[s]="${sn[n]}"
done
done
! [ -z $style ] && style="${style[*]};" && style=${style// /;}
! [ -z $background ] && background=";$background"
background+="m"
text="\e[$style$color$background$text\e[0m"
fi
echo "$text"
}
Это предлагает полужирный, курсивный, подчеркивание и обратные стили текста, а также поддерживаемый раскрашивает удар. Можно также экспортировать функцию в случае, если Вы не хотите добавлять его к .bash_profile
непосредственно.
Вот пример, как Вы могли использовать его для форматирования подсказки (обратите внимание, что подсказка требует немного другого синтаксиса):
colorize_prompt() {
colorize $@ &>/dev/null
if [ "$color_support" = true ]
then
text="\[\e[$style$color$background\]$1\[\e[0m\]"
fi
echo $text
}
# Main prompt
PS1="$(colorize_prompt "火" purple bold) $(colorize_prompt "\w" blue bold) "
# Continuation prompt
PS2="$(colorize_prompt "|" cyan bold) "
сценарий освобожден от моего dotfiles.