在单个会话中从python运行bash命令

时间:2018-06-17 23:56:55

标签: python bash

如何在维护会话时从python运行bash命令。 例如,如果我pwd,然后cd ..,然后pwd,它应该移动到比当前目录低一级的目录级别。我不希望将所有这些命令作为单个命令运行|或者&amp ;.我想在各行上运行它们。

1 个答案:

答案 0 :(得分:1)

In general, processes can't modify the environment of their parent process, or any other existing process.所以你不能以你描述的方式轻松地做到这一点,除非你故意以某种方式从子进程中保存环境(例如通过重定向env来结束所有bash命令一个文件,用export为文件中的每个条目添加前缀,并在每个后续命令的开头为该文件提供源...)。

<强>备选方案:

  • 将所有相互依赖的bash命令添加到单个 bash脚本并从python运行bash脚本,而不是逐个在python中运行bash命令。
  • 在运行每个bash命令之前,使用os.chdir和其他方法根据需要更改python进程环境变量。