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)