从最后列举的Bash历史记录

时间:2012-08-13 11:53:35

标签: bash cygwin history

在bash中,可以!-1执行1命令,该命令来自从0开始的末尾枚举的历史记录。但是,如何才能看到历史记录,以便通过内置方式显示所提到的枚举而不是通常的枚举?当然,人们可以为此编写一个简单的脚本,但我觉得应该有一些选择。

另一个问题是,是否有办法以某种方式切换历史记录扩展,以便-符号是不合理的。说交换!1!-1的意思。

1 个答案:

答案 0 :(得分:1)

显示负指数很容易实现。只需获取历史记录的长度(或从history 1获取),然后从所有其他历史记录项的索引中减去它。

neghistory() {
    local i n s
    read n s < <(history 1)
    history "$@" | while read i s; do
        printf '%5d %s\n' $((i-n-1)) "$s"
    done
}

我没有看到任何影响历史输出的内置方法,也没有改变历史扩展中索引的工作方式。