在bash中,可以!-1
执行1
命令,该命令来自从0
开始的末尾枚举的历史记录。但是,如何才能看到历史记录,以便通过内置方式显示所提到的枚举而不是通常的枚举?当然,人们可以为此编写一个简单的脚本,但我觉得应该有一些选择。
另一个问题是,是否有办法以某种方式切换历史记录扩展,以便-
符号是不合理的。说交换!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
}
我没有看到任何影响历史输出的内置方法,也没有改变历史扩展中索引的工作方式。