Страница 1 из 1
Раскраска логин-шелла
Добавлено: 2012-09-23 5:34:06
Гость
При добавлении в
/etc/profile следующий код раскрасит любой sh-совместимый логин-шелл (sh, bash, и т.д.) для пользователя:
Код: Выделить всё
bg_black=40
fg_red=31
fg_green=32
fg_yellow=33
fg_magenta=35
fg_cyan=36
case `id -u` in
0) PS1=`echo -e '\E[${fg_red};${bg_black}m'"\033[1m# \033[0m"`;;
*) PS1=`echo -e '\E[${fg_green};${bg_black}m'"\033[1m> \033[0m"`;;
esac
Но как сделать чтобы зайдя через su или sudo цвет приглашения сохранялся?
Re: Раскраска логин-шелла
Добавлено: 2012-09-23 6:11:17
Гость
С sudo прокатывает такая штука в
/etc/profile:
Код: Выделить всё
export SUDO_PS1=`echo -e '\E[${fg_yellow};${bg_black}m'"\033[1m# \033[0m"`
Но только один (первый) раз! Если теперь находясь в судо-шелле запустить sh, то получается такая некрасивость:
Код: Выделить всё
[color=#00BF00]>[/color] sudo -s
[color=#FFFF00]#[/color] sh
fg_yellow};${bg_black}m[color=#FFFF00]#[/color]
Как сделать просто эскейп без echo в приглашении который будет работать во всех sh-совместимых шеллах?
Re: Раскраска логин-шелла
Добавлено: 2012-09-23 6:16:28
Гость
P.S.: шелл юзверя - баш, шелл рута - системный sh.
P.P.S.: не знал что в коде теги не работают.

Re: Раскраска логин-шелла
Добавлено: 2012-09-23 15:25:35
Alex Keda
код затем и придуман

Re: Раскраска логин-шелла
Добавлено: 2012-09-23 22:22:06
Гость
Разобрался: оказалось, что во фряхе родной
/bin/sh - это Korn Shell.
у него эскейп-коды заключаются в
$' '
И чтобы цвета были во всех логин-шеллах в системе надо прописать:
Код: Выделить всё
# red=31
# green=32
# yellow=33
# magenta=35
# cyan=36
# white=37
export SUDO_PS1=$'\e[33m'"# "$'\e[0m'
case `id -u` in
0) PS1=$'\e[31m'"# "$'\e[0m'
;;
*) PS1=$'\e[32m'"> "$'\e[0m'
;;
esac
так у юзеров будет
>, у рута
#, а при
sudo -s должно быть
#. но у меня почему то коричневый.
вставить в эскейп-коды переменные не получилось
