Python历史命令没有输出

问题描述 投票:0回答:2

我试图在 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 macos subprocess
2个回答
0
投票

这是正确的,因为不会有任何历史。您在 Python 程序中所做的就是启动一个新的 shell 来运行您传递给它的任何命令。在您的情况下,该 shell 执行的第一个命令是 history


0
投票

history
是 bash 内置函数,旨在用于交互式使用。

您可能更喜欢直接打开

Path('~/.bash_history').expanduser()
并阅读其内容。

© www.soinside.com 2019 - 2024. All rights reserved.