Как изменить приглашение bash?

Я хотел бы изменить свой bash приглашение при входе в систему. Но даже после того, как я переоденусь .bashrc и повторно войти, он по-прежнему запрашивает старый. Что случилось, пожалуйста?

Я хочу сделать [u@h W]$
но я получаю s-v$ по некоторым причинам, и я не знаю, где он был настроен.

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

Это то, что я получаю:

-bash-3.2$ cat .bashrc
PS1='[u@h W]$'
-bash-3.2$ echo $PS1
s-v$
-bash-3.2$
5
задан user1762109
источник

1 ответов

скорее всего, ваша оболочка является интерактивной оболочкой входа в систему, поэтому она не читает ~/.bashrc но ~/.bash_profile вместо:

   When  bash is invoked as an interactive login shell, or as a non-inter‐
   active shell with the --login option, it first reads and executes  com‐
   mands  from  the file /etc/profile, if that file exists.  After reading
   that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile,
   in  that order, and reads and executes commands from the first one that
   exists and is readable.  The --noprofile option may be  used  when  the
   shell is started to inhibit this behavior.

быстрый и грязный исправить можно просто симлинк ~/.bashrc до ~/.bash_profile или наоборот. Это возможно ломает что-то с неинтерактивными оболочками, например, команды удаленно запускаются через SSH, поэтому подумайте дважды.

см. раздел "вызов" в man bash для более подробной информации.

1
отвечен Sami Laine 2014-02-26 06:40:49
источник

Другие вопросы bash linux prompt