Comment puis-je exécuter une commande différente mais avec les mêmes arguments?

8

Par exemple, j'édite puis exécute la même source.

vim arbit.py
python arbit.py

Je sais que je pourrais l'exécuter de l'intérieur vim, mais je veux une solution générale sur Bash. Je continue de trouver des situations où je réutilise des arguments.

Comment puis je faire ça?

Sanjeev Satheesh
la source

Réponses:

12

Utilisez !*. Il s'étend à tous les mots sauf le premier (c'est-à-dire la commande).

$ vim arbit.py
$ python !*
python arbit.py

Vous pouvez le combiner avec toutes les fonctionnalités de !, par exemple:

$ vim arbit.py
$ ls
$ python !vim:*
vim arbit.py

Ou, si vous ne voulez que le dernier mot, il y a deux autres façons:

$ vim arbit.py
$ python !$

ou:

$ vim arbit.py
$ python <Esc+.>

Voir la documentation d'interaction de l'historique bash pour plus de détails.

Mikel
la source
Avec !:2vous réutilisez le deuxième argument de la commande précédente.
Matthias Braun
3

Il existe au moins deux façons de procéder.

$ vim arbit.py
$ python[press Alt-.]

qui récupère le dernier argument de la commande précédente comme le fait:

$ vim arbit.py
$ python !$

ou

$ vim arbit.py
$ python !*

qui récupère tous les arguments de la commande précédente.

En pause jusqu'à nouvel ordre.
la source