0

我编写了一系列 python 工具来产生新的 bash 会话。我希望这些单独的子外壳继承父级的命令历史记录。我努力了:

shopt -s histappend
PROMPT_COMMAND="history -an;$PROMPT_COMMAND"

.bash_profile. 但它没有给我我需要的东西。我已经看到这样做了。我的工具使用:

os.system('bash')

产生一个子进程。

想法?更好的方法?

4

2 回答 2

0

site.py 在启动时设置 os.environ。除非您明确更改 os.environ,否则这不会更改。因此,对 os.system('/bin/bash') 的调用应该具有与 python 启动时相同的环境。

在启动后立即检查 os.environ,如有必要,对 os.environ 进行更改。直接地。

python 文档操作系统

于 2013-06-10T19:59:19.793 回答
0

根据您的操作系统.bash_profile可能仅由登录 shell.bashrc执行,而对非登录 shell 执行。

所以试着把

shopt -s histappend
PROMPT_COMMAND="history -a; history -n"

.bashrc而不是.bash_profile.

于 2013-06-10T18:25:09.480 回答