2

Я работаю на MacBook OSX и администрирую некоторые виртуальные машины на моей машине. Я часто делаю ошибки, потому что все подсказки имеют одинаковый цвет и тип, поэтому я хочу их различать.

Прежде всего, я хочу, чтобы учетная запись root отображалась красным цветом, потому что это сама по себе опасность!

Во-вторых, я хочу иметь возможность раскрашивать определенные IP-адреса, которые принадлежат моим серверам, например «mywebserver.local» (чей адрес находится внутри /etc /hosts) и «192.168.54.1».

То, что я сейчас использую, это:

green=$(tput setaf 2);
yellow=$(tput setaf 3);
reset=$(tput sgr0);

PS1='\['"$green"'\]\u\['"$reset"'\]@\['"$yellow"'\]\h:\W\$:\['"$reset"'\] '

который только частично делает то, что я хочу. Как мне войти в условия?

2 ответа2

0

Вот как вы можете захотеть, чтобы это было:

[ $USER = root ] && PS1="\033[0;40;1;91[ root > ]\033[0;1;94m " || {
    HOST=`hostname`
    if [ $HOST = 'mammothpc_prehistoric' ] ; then
        PS1=...
    elif [ $HOST = 'progueing_alone' ] ; then
        PS1=...
    elif [ $HOST = 'guru_pro_server' ] ; then
        PS1=...
    else
        echo 'Error 404 : no such errors found.'
        PS1=... 
}

Вместо этого, кстати, вы также можете установить некоторую цветовую переменную и дополнительно назначить всю схему PS1:

PS1="$FG[ $USER@$HOST ] : $reset"
0

Не ответ, а отличное руководство, которое описывает не только то, чего я хочу достичь, но и множество других полезных вещей: https://www.digitalocean.com/community/tutorials/how-to-customize-your-bash-prompt- на-Linux-VPS

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .