I have not found any official documentation about this.
参考
http://unix.stackexchange.com/questions/5684/history-command-inside-bash-script
本文探讨了如何在Bash脚本中使用shell的历史记录功能。由于Bash默认禁用了非交互式shell的历史记录,文章提供了几种解决方案,包括启用历史记录、直接从~/.bash_history文件读取以及推荐更可靠的活动日志方法。
2014-03-18 wcdj
Question:
I have been bashing my head to write a simple history script for the last two days. History is a shell-built in command I couldn't able to use that within a BASH script. So, Is there a way attain this using BASH script ?
Here we go my script for you:
#!/bin/bash
history | tail -100 > /tmp/history.log
cd /tmp
uuencode history.log history.txt | mail -s "History log of server" hello@hel.com
1 Bash disables history in noninteractive shells by default, but you can turn it on.
#!/bin/bash
HISTFILE=~/.bash_history
set -o history
history | tail …
2 I'm not sure if it actually uses the history capability when running non-interactively, otherwise every shell script you run would clutter up your command history.
Why not go directly to the source ${HOME}/.bash_history, replace history | tail -100 with tail -100 ${HOME}/.bash_history. (If you use timestamps you'd probably have to do something along the lines of grep -v ^# ${HOME}/.bash_history | tail -100).
3 The history builtin seems to be disabled inside a shell script. See here: http://www.tldp.org/LDP/abs/html/histcommands.html
I have not found any official documentation about this.
参考
http://unix.stackexchange.com/questions/5684/history-command-inside-bash-script

被折叠的 条评论
为什么被折叠?