J'essaye de récupérer par programme l'historique d'un terminal bash à partir d'un processus enfant (allez exécutable). Je cherche essentiellement les dernières N commandes que le terminal a lancées.Est-il possible d'aller chercher la dernière commande exécutée dans un terminal parent?
Débit:
- terminal bash ouvert PID = 5
- exécuter quelques commandes (sed, rpm, gpg)
- course aller exécutable PID = 32 PPID = 5
- d'extraction des commandes et paramètres (sed, rpm, gpg) à partir du processus parent (terminal bash) et les imprimer
Le bash intégré history
ne donne pas de sultes lorsqu'il est exécuté sous go/shell out.
La lecture ~/.bash_history
n'est pas précise car l'historique d'un terminal bash est écrit lorsque l'invite est fermée.
Vous vous demandez si c'est possible du tout?
ce lien peut aider https://unix.stackexchange.com/questions/147563/how-do-i-repeat-the-last-command-without-using-the-arrow-keys – amrit
régler 'PROMPT_COMMAND = ' export last_command = "!!" '', puis utilisez la variable d'environnement' last_command'. NOTE: Je ne sais pas si c'est un mécanisme sûr, w.r.t. shell injection ... – anishsane