为什么历史命令在脚本文件中不执行任何操作?

为什么历史命令在脚本文件中不执行任何操作?

如果我创建一个包含

 #!/bin/bash 
 history

并运行它,我没有得到任何输出。在终端中手动运行它或source使用脚本文件产生输出。

为什么history不能从文件中工作?

答案1

第二个命令确实“有效”,但对于非交互式 shell 未启用历史记录,这就是它在脚本中不返回任何内容的原因。

在非交互式 shell 中测试默认值:

nohistory.sh:

#!/bin/bash
set -o | grep history
history

结果:

$ ./nohistory.sh
history         off

启用历史记录set -o history

history.sh:

#!/bin/bash
set -o history
set -o | grep history
history

结果:

$ ./history.sh
history         on
    1  set -o | grep history
    2  history

相关内容