Par exemple, j'ai la sortie suivante de la commande:
loom@loom:$ history | grep MAKE
219 ../build.sh -DCMAKE_BUILD_TYPE=Debug ..
909 history | grep MAKE
Comment écrire une commande, qui lance la première commande de la liste? De plus, j'aimerais savoir comment lancer la n-ième commande à partir de la sortie de history | grep something
?
bash
command-line
command-history
Métier à tisser
la source
la source
!219
, non?Réponses:
Voir ces chiffres sur la gauche de la sortie? Vous pouvez les utiliser pour faire référence à cette commande avec le développement de l'historique du shell.
![number]
dans la plupart des coquillages.Cela fonctionne à la fois dans
bash
etzsh
:la source
Pas une solution très élégante mais fonctionne.
la source
la petite fonction bash suivante devrait faire ce que vous voulez dans de nombreux cas.
usage:
nthhist 3 MAKE
exécutera la 3ème commande qui contenaitMAKE
.remarque: cela ne fonctionnera pas si la commande trouvée de cette façon n'est qu'un bash-internal
la source