LINUX.ORG.RU

Не меняется $PS1 в konsole и yakuake

 , , , ,


0

1

Привет, ЛОР! Имеем gentoo с kde. В /etc/profile после

if [ -n "${BASH_VERSION}" ] ; then
        # Newer bash ebuilds include /etc/bash/bashrc which will setup PS1
        # including color.  We leave out color here because not all
        # terminals support it.
        if [ -f /etc/bash/bashrc ] ; then
                # Bash login shells run only /etc/profile
                # Bash non-login shells run only /etc/bash/bashrc
                # Since we want to run /etc/bash/bashrc regardless, we source it 
                # from here.  It is unfortunate that there is no way to do 
                # this *after* the user's .bash_profile runs (without putting 
                # it in the user's dot-files), but it shouldn't make any 
                # difference.
                . /etc/bash/bashrc
        else
                PS1='\u@\h \w \$ '
        fi
else
        # Setup a bland default prompt.  Since this prompt should be useable
        # on color and non-color terminals, as well as shells that don't
        # understand sequences such as \h, don't put anything special in it.
        PS1="${USER:-$(whoami 2>/dev/null)}@$(uname -n 2>/dev/null) \$ "
fi

добавил строку

#Custom PS1
export PS1='\e[0;35m'["\$(date +%T)] $PS1"
Теперь если залогиниться в консоль - перед стандартным приглашением выводится дата. А в yakuake и konsole не выводится, пока не сделаешь source /etc/profile. Почему, и как поправить?

★★

Ответ на: комментарий от serkhay

Ага. Причем если залогиниться в консоль при этом, то дата выводится дважды, т.е. один раз из /etc/profile и один раз из .bash_profile. Тут какая-то жопа именно с yakukake (или konsole), но уж дюже удобен он умея выезжать по хоткею.

kir64 ★★
() автор топика
Ответ на: комментарий от kir64

В настройках профиля konsole вроде есть такой пункт «использовать login shell» или что-то типа этого. Может быть переведено как «использовать оболочку входа». Попробуй включить это

serkhay
()
Ответ на: комментарий от serkhay

Точно! Именно это помогло. Спасибо тебе!

kir64 ★★
() автор топика

man bash:

When bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists.

takino ★★★★★
()

Вообще говоря, имхо, правильней такие вещи писать в ~/.bashrc или в ~/.bash_profile, но никак не в системный /etc/profile.

takino ★★★★★
()
Ответ на: комментарий от Deleted

Да я как бы в курсе. Чем, по-твоему, /root/ отличается от любого /home/$user/? Лучше объясни мне, почему мне нельзя использовать глобальное объявление в /etc/profile, если мне необходима дата в любом приглашении любого юзера в системе.

kir64 ★★
() автор топика
Последнее исправление: kir64 (всего исправлений: 1)
Ответ на: комментарий от kir64

Если так - то да, вполне ок.
Единственное будь внимателен, когда будешь систему обновлять.

takino ★★★★★
()
Ответ на: комментарий от anonymous

anonymous, takino, вот и я к тому же выводу пришел.

dispatch-conf всегда внимательно делаю, смержу если что.

kir64 ★★
() автор топика

У меня такое прописано в ~/.bashrc, всё работает чётко.

haku ★★★★★
()
Ответ на: комментарий от kir64

И кто вам запрещает использовать глобальный /etc/bash.bashrc?

Zmicier ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.