由于某种原因,我无法将 HISTSIZE 设置为小于 1
$ export HISTSIZE="2"; echo $HISTSIZE
2
$ export HISTSIZE="1"; echo $HISTSIZE
1
$ export HISTSIZE="0"; echo $HISTSIZE
1
$ export HISTSIZE="-1"; echo $HISTSIZE
1
有趣的是,将其设置为非数字值也会导致 1:
$ export HISTSIZE="test"; echo $HISTSIZE
1
似乎正在悄悄进行某种验证。知道我应该查看哪里吗?
我想设置HISTSIZE
为 -1 这样我就可以获得无限的历史记录。
我目前正在使用 zsh 5.1.1 和 oh-my-zsh
值得指出的是,HISTFILESIZE
不存在这个问题:
$ export HISTFILESIZE="-1"; echo $HISTFILESIZE
-1
答案1
这是由控制histsizesetfn()
的zsh
Src/params.c
:
void
histsizesetfn(UNUSED(Param pm), zlong v)
{
if ((histsiz = v) < 1)
histsiz = 1;
resizehistents();
}
所以的值HISTSIZE
永远不能设置为小于 1 的值。