我试图在 python 中获取
history
命令的输出,但它什么也没返回。当我在终端中运行它时,它会返回我最后的命令。我使用的是 Mac 操作系统。
import subprocess
command = 'history'
# Execute the command using a shell
result = subprocess.run(command, shell=True, capture_output=True, text=True)
# Check the result
if result.returncode == 0:
print("Command executed successfully!")
print("Output:")
print(result.stdout)
else:
print("Error executing command:")
print(result.stderr)
输出:
Command executed successfully!
Output:
这是正确的,因为不会有任何历史。您在 Python 程序中所做的就是启动一个新的 shell 来运行您传递给它的任何命令。在您的情况下,该 shell 执行的第一个命令是 history。
history
是 bash 内置函数,旨在用于交互式使用。
您可能更喜欢直接打开
Path('~/.bash_history').expanduser()
并阅读其内容。