Le shell Bash apporte des outils en ligne de commande pour éditer et manipuler l'historique des commandes d'un utilisateur. C'est principalement du confort, un moyen d'économiser des frappes de touches.
Commandes d'historique de Bash :
history
fc
bash$ history 1 mount /mnt/cdrom 2 cd /mnt/cdrom 3 ls ...
Variables internes associées aux commandes d'historique de Bash :
$HISTCMD
$HISTCONTROL
$HISTIGNORE
$HISTFILE
$HISTFILESIZE
$HISTTIMEFORMAT (Bash, version 3.0 et suivantes)
$HISTSIZE
!!
!$
!#
!N
!-N
!STRING
!?STRING?
^STRING^string^
Malheureusement, les outils d'historique de Bash n'ont pas d'utilité dans un script.
#!/bin/bash # history.sh # Essai (vain) d'utilisation de la commande 'history' dans un script. history # Aucun affichage. var=$(history); echo "$var" # $var est vide. # Les commandes d'historique sont désactivées à l'intérieur d'un script.
bash$ ./history.sh (pas de sortie)
Le site Advancing in the Bash Shell donne une bonne introduction à l'utilisation de l'historique des commandes avec Bash.