如何将我的命令历史记录到 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-script
或 source 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 变量中?的主要内容,如果未能解决你的问题,请参考以下文章