Advanced Bash-Scripting Guide: An in-depth exploration of the art of shell scripting
Prev |  | Next

# 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:

1. history

2. fc

     bash$ history
        1  mount /mnt/cdrom
        2  cd /mnt/cdrom
        3  ls
         ...

Internal variables associated with Bash history commands:

1. $HISTCMD

2. $HISTCONTROL

3. $HISTIGNORE

4. $HISTFILE

5. $HISTFILESIZE

6. $HISTSIZE

7. $HISTTIMEFORMAT (Bash, ver. 3.0 or later)

8. !!

9. !$

10. !#

11. !N

12. !-N

13. !STRING

14. !?STRING?

15. ^STRING^string^

Unfortunately, the Bash history tools find no use in scripting.

       1 #!/bin/bash
       2 # history.sh
       3 # A (vain) attempt to use the 'history' command in a script.
       4
       5 history                      # No output.
       6
       7 var=$(history); echo "$var"  # $var is empty.
       8
       9 #  History commands are, by default, disabled within a script.
      10 #  However, as dhw points out,
      11 #+ set -o history
      12 #+ enables the history mechanism.
      13
      14 set -o history
      15 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.

Prev | Home | Next
Localization |  | Sample `.bashrc` and `.bash_profile` Files