Bash History: ajouter la dernière commande à un fichier

Résolu
Bonjour :)

Je voudrais créer un script qui récupère la commande passée juste avant pour l'ajouter à un fichier.

Le but est (ou était) de pouvoir écrire "facilement" un script de réinstallation/compilation/configuration(etc.) de mon Raspbian lite.

Je me bat avec la commande history, les variables, les pipes, grep et tail,
mais il me manque pas mal d'expérience de l'ensemble et du détail et un coup de main serait bienvenu!

J'ai ceci qui donne un résultat correct mais je voudrais me débarrasser du nombre d'index et je n'ai pas trouvé de moyen simple:

history | tail -n 2 | head -n 1

j'essaie ceci qui ne donne rien et je ne vois pas pourquoi,
j'ai des difficultés à trouver le bon document explicatif...

VAR=&(history | tail -n 2 | head -n 1)

Salutations !

PS :
Suite de mon travail

pi@raspberrypi:~ $ history | tail -n 2 | head -n 1 | sed --debug -e '/^\s/d'
SED PROGRAM:
/^\\s/ d
INPUT: 'STDIN' line 1
PATTERN: 167 history | tail -n 2 | head -n 1 | sed --debug -e '/^\\z/d'
COMMAND: /^\\s/ d
END-OF-CYCLE:

> toujours rien de concluant

4 réponses

  1. c'est résolu:

    history | tail -n 2 | head -n 1 | sed -e 's/^..[0-9]*//'
    0
    1. Contributeur
      Salut,

      Un bon tuto sur l'historique du shell ici

      Je t'invite aussi à jeter un œil au
      man history
      plein de bons conseils, notamment sur le rappel des commandes.

      0
      1. Contributeur
        Un autre tuto encore plus détaillé ici
        0
    2. Merci Zipe !!
      J'ai galéré avec le man history, je crois qu'il faut que je me familiarise avec le bash avant de pouvoir comprendre ça en détail, tes tutos vont m'aider :)
      0
      1. après avoir lu un des tutos, j'ai constaté que :
        !! >> fichier

        est équivalent à
        history | tail -n 2 | head -n 1 | sed -e 's/^\s*[0-9]*..//' >> fichier

        mais je suis content d'avoir réviser mes regex ....
        0