echo $HISTSIZE 在通过 shell 脚本执行时不打印,但在命令行中工作

echo $HISTSIZE 在通过 shell 脚本执行时不打印,但在命令行中工作

我创建了一个名为 1.sh 的 shell 脚本文件,仅使用一个 echo 命令:

echo $HISTSIZE

我将文件 1.sh 设为可执行文件,并尝试通过运行命令在终端中运行该文件

./1.sh

它在终端上打印了一个空行。但是当我在 shell 提示符下运行此命令时,我得到 1000 作为输出。

为什么 echo 在我的 shell 脚本中不起作用?

答案1

您的脚本在非交互式 shell 中运行,默认情况下禁用历史记录(假设它支持历史记录,但sh当今大多数实现都是这种情况);因此HISTSIZE是空的。

如果你强制启用历史记录(至少在 Bash 中),你将获得默认值:

set -o history
echo $HISTSIZE

相关内容