无法将 HISTSIZE 设置为低于 1

无法将 HISTSIZE 设置为低于 1

由于某种原因,我无法将 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()zshSrc/params.c

void
histsizesetfn(UNUSED(Param pm), zlong v)
{
    if ((histsiz = v) < 1)
        histsiz = 1;
    resizehistents();
}

所以的值HISTSIZE永远不能设置为小于 1 的值。

相关内容