Wie kann ich einen anderen Befehl ausführen, jedoch mit denselben Argumenten?

8

Zum Beispiel bearbeite ich dieselbe Quelle und führe sie dann aus.

vim arbit.py
python arbit.py

Ich weiß, dass ich es von innen ausführen kann vim, aber ich möchte eine allgemeine Lösung für Bash. Ich finde immer wieder Situationen, in denen ich Argumente wieder verwende.

Wie kann ich das machen?

Sanjeev Satheesh
quelle

Antworten:

12

Verwenden Sie !*. Es wird auf alle Wörter außer dem ersten (dh dem Befehl) erweitert.

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

Sie können es mit allen Funktionen kombinieren !, zum Beispiel:

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

Wenn Sie nur das letzte Wort möchten, gibt es zwei andere Möglichkeiten:

$ vim arbit.py
$ python !$

oder:

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

Siehe die bash Geschichte Interaktion Dokumentation für weitere Details.

Mikel
quelle
Wenn !:2Sie das zweite Argument des vorherigen Befehls wiederverwenden.
Matthias Braun
3

Es gibt mindestens ein paar Möglichkeiten, dies zu tun.

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

Dadurch wird das letzte Argument des vorherigen Befehls wie folgt abgerufen:

$ vim arbit.py
$ python !$

oder

$ vim arbit.py
$ python !*

Hiermit werden alle Argumente des vorherigen Befehls abgerufen.

Bis auf weiteres angehalten.
quelle