![为什么历史命令在脚本文件中不执行任何操作?](https://linux22.com/image/53957/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%8E%86%E5%8F%B2%E5%91%BD%E4%BB%A4%E5%9C%A8%E8%84%9A%E6%9C%AC%E6%96%87%E4%BB%B6%E4%B8%AD%E4%B8%8D%E6%89%A7%E8%A1%8C%E4%BB%BB%E4%BD%95%E6%93%8D%E4%BD%9C%EF%BC%9F.png)
如果我创建一个包含
#!/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