如何将我的命令历史记录到 shell 变量中?

Posted

技术标签:

【中文标题】如何将我的命令历史记录到 shell 变量中?【英文标题】:how can I count my command history to a shell variable? 【发布时间】:2021-02-17 05:34:03 【问题描述】:

我正在使用下面的脚本来计算我的命令历史记录,但总是得到 0,我如何将我的历史记录计算到 shell 变量中?

#! /bin/bash
count=$(history | wc -l)
echo $count

【问题讨论】:

如果您想要交互式 shell 的历史行数,请尝试运行 . name-of-scriptsource name-of-script。也可以试试echo $HISTCMD 由于@Milag 概述了与当前shell 相关的历史记录,因此在没有源代码的情况下运行脚本将在另一个没有历史记录的bash shell 中运行历史命令 如何在同一个脚本文件中运行 source name-of-script?似乎不可能 【参考方案1】:

首先,您必须在脚本中激活 shell 内置 history

HISTFILE=~/.bash_history
set -o history

之后你就可以使用你的源代码了。

【讨论】:

但是脚本和直接运行命令的计数结果似乎不相等,为什么会发生这种情况?有什么方法可以使它们相同? 似乎 .bash_history 文件与历史命令不同,但如果我注销/登录它们几乎相同。似乎历史缓存行在 .bash_history 中删除之前。

以上是关于如何将我的命令历史记录到 shell 变量中?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 python 中启用 Django shell 中的历史记录

命令历史及“!”的使用

shell基础1

命令历史及自动注销

linux怎么清除history记录

linux中Shell历史命令记录文件的路径是啥?