但HISTSIZE环境变量不行?

但HISTSIZE环境变量不行?

我试图了解有关环境变量的一些知识,并检查了 LPIC 考试指南中列出的一些常见变量。它讨论了其他 HIST 变量中的 HISTSIZE,但它说 HISTSIZE 和 HISTCONTROL 之类的东西是常见的环境变量。然而我的测试并没有得出结论。在下面的测试中,我检查 HISTSIZE 是否是全局环境变量,但事实并非如此。但是当我回显它时,我看到了结果,所以我的假设是它是本地/shell 变量。但是,我生成了一个新的 bash 子 shell,并且该值仍然存在,因此它必须是一个全局/环境变量。那么它怎么不是 printenv 或导出的结果呢?

$ printenv HISTSIZE
$ export | grep HISTSIZE
$ echo $HISTSIZE
1000
$ bash
$ echo $HISTSIZE
1000

答案1

来自手动的[强调我的]:

HISTSIZE
历史列表中要记住的最大命令数。 […]shell 在读取任何启动文件后将默认值设置为 500。

你的新东西bash并没有HISTSIZE进入环境,它HISTSIZE会自行设定。您观察到的值不是默认值,因此它必须位于启动文件中的某个位置。就我而言,HISTSIZE=…是在~/.bashrc.

相关内容