По умолчанию bash
не имеет общесистемного файла конфигурации для интерактивных оболочек.Но есть опция компиляции во время компиляции в config-top.h
:
/* System-wide .bashrc file for interactive shells. */
/* #define SYS_BASHRC "/etc/bash.bashrc" */
Если это включено (как я полагаю, в Debian), похоже, нет способа отключить этово время выполнения, не отключая также ~/.bashrc
.
Debian /etc/bash.bashrc
заменяет любое унаследованное значение PS1
своим собственным значением.Конечно, вы можете переопределить это в своем собственном ~/.bashrc
, но это означает, что вы не можете форсировать значение PS1
через среду при запуске интерактивной оболочки для кого-то другого.В конце концов, пользователь выбирает, как выглядит его приглашение, а не ваше.
Обходной путь может заключаться в предоставлении собственного rcfile, который будет источником пользователя~/.bashrc
файл явно, затем устанавливает подсказку, какой вы хотите, чтобы это было.Я не знаю ни одного простого способа сделать это без временного файла:
with NamedTemporaryFile() as tmprc:
print(". ~/.bashrc", file=tmprc)
print('PS1="my-prompt "', file=tmprc)
s = subprocess.Popen(['/bin/bash', '-i', '--rcfile', tmprc.name])