我的最终目标是捕获终端中执行的上一条命令。由于〜/ .bash_history不包含当前终端会话中的命令,因此我不能简单地读取该文件。
在另一个线程中,我找到了以下脚本:
from subprocess import Popen, PIPE, STDOUT
shell_command = 'bash -i -c "history -r; history"'
event = Popen(shell_command, shell=True, stdin=PIPE, stdout=PIPE,
stderr=STDOUT)
output = event.communicate()
这与我要查找的内容非常接近,但是由于它是作为子进程启动的,因此它也不会包括当前终端会话的历史记录。有什么办法可以在当前shell中执行类似的命令?
为什么不直接读取文件。 〜/ .bash_history
for history in open('/home/user/.bash_history'):
print(history, end='')
问题内容: 尝试读取的版本号时,我得到了很多其他行,需要忽略。我尝试阅读的手册,并尝试了以下命令: 我想知道这是否正确吗? 问题答案: 是的,这是从命令获取第一行输出的一种方法。 如果命令以相同的方式输出任何您想要捕获的标准错误,则需要将命令的标准错误重定向到标准输出流: 捕获第一行的方法还有很多,包括(在第一行之后退出),(仅打印第一行,但读取所有内容),(仅打印第一行,但再次读取所有内容)等。
我想知道这是不是正确的做法?
问题内容: 我想编写一个函数,该函数将执行shell命令并以字符串形式返回其输出,无论是错误还是成功消息。我只想获得与命令行相同的结果。 能做到这一点的代码示例是什么? 例如: 问题答案: 这个问题的答案取决于你使用的Python版本。最简单的方法是使用以下功能: 该功能适用于仍在广泛使用的几乎所有版本的Python(2.7+)。2但对于较新的版本,不再推荐使用此方法。 现代版本的Python(3
我该如何做到这一点,特别是因为您似乎无法真正运行中的任何类型的groovy代码?
问题内容: 在node.js中,我想找到一种方法来获取Unix终端命令的输出。有什么办法吗? 问题答案: 那就是我现在正在工作的项目中这样做的方式。 示例:检索git用户
在一个节点中。js,我想找到一种获取Unix终端命令输出的方法。有没有办法做到这一点?