0

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

另一个问题是,是否有办法以某种方式切换历史扩展,以使该-符号变得不必要。说交换!1和的意思!-1

4

1 回答 1

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
}

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

于 2012-08-13T14:14:37.090 回答