我编写了一系列 python 工具来产生新的 bash 会话。我希望这些单独的子外壳继承父级的命令历史记录。我努力了:
shopt -s histappend
PROMPT_COMMAND="history -an;$PROMPT_COMMAND"
在.bash_profile
. 但它没有给我我需要的东西。我已经看到这样做了。我的工具使用:
os.system('bash')
产生一个子进程。
想法?更好的方法?
site.py 在启动时设置 os.environ。除非您明确更改 os.environ,否则这不会更改。因此,对 os.system('/bin/bash') 的调用应该具有与 python 启动时相同的环境。
在启动后立即检查 os.environ,如有必要,对 os.environ 进行更改。直接地。
根据您的操作系统,.bash_profile
可能仅由登录 shell.bashrc
执行,而对非登录 shell 执行。
所以试着把
shopt -s histappend
PROMPT_COMMAND="history -a; history -n"
在.bashrc
而不是.bash_profile
.