XXX Appendix L. History Commands¶
The Bash shell provides command-line tools for editing and manipulating a user’s command history . This is primarily a convenience, a means of saving keystrokes.
Bash history commands:
- history
 - fc
 
bash$ history
   1  mount /mnt/cdrom
    2  cd /mnt/cdrom
    3  ls
     ...
Internal variables associated with Bash history commands:
- $HISTCMD
 - $HISTCONTROL
 - $HISTIGNORE
 - $HISTFILE
 - $HISTFILESIZE
 - $HISTSIZE
 - $HISTTIMEFORMAT (Bash, ver. 3.0 or later)
 - !!
 - !$
 - !#
 - !N
 - !-N
 - !STRING
 - !?STRING?
 - ^STRING^string^
 
Unfortunately, the Bash history tools find no use in scripting.
#!/bin/bash
# history.sh
# A (vain) attempt to use the 'history' command in a script.
history                      # No output.
var=$(history); echo "$var"  # $var is empty.
#  History commands are, by default, disabled within a script.
#  However, as dhw points out,
#+ set -o history
#+ enables the history mechanism.
set -o history
var=$(history); echo "$var"   # 1  var=$(history)
bash$ ./history.sh
(no output)
The Advancing in the Bash Shell site gives a good introduction to the use of history commands in Bash.