如何通过centos中的脚本获取.bash_history中某些命令的输入?

如何通过centos中的脚本获取.bash_history中某些命令的输入?

编写一个 python 脚本来生成命令是可行的,并且命令在 bash 中执行,但它们没有输入到 .bash_history 中。我应该怎么做才能让这些命令显示在 .bash_history 中?我的 py 文件如下:-

import os
import sh

def main():
    bashcommand = "top"
    bashcommand1 = "ls"
    bashcommand2 = "vi exp1.txt"
    os.system(bashcommand)
    os.system(bashcommand1)
    os.system(bashcommand2)
main()

sh.cd('/root')
print(sh.pwd())

答案1

正如 Sami Laine 所评论的,os.system 使用的 shell 通常不是 bash。除此之外,它bash -c 'command'不会写入 .bash_history。当然,您可以这样做:

import os
def runcommand(command):
    with open(os.path.expanduser('~/.bash_history'), 'a') as f:
        f.writelines([command])
    os.system(command)

相关内容