Bagaimana saya bisa menjalankan perintah yang berbeda tetapi dengan argumen yang sama?

8

Misalnya, saya mengedit dan menjalankan sumber yang sama.

vim arbit.py
python arbit.py

Saya tahu saya bisa menjalankannya dari dalam vim, tetapi saya ingin solusi umum pada Bash. Saya terus menemukan situasi di mana saya menggunakan kembali argumen.

Bagaimana saya bisa melakukan itu?

Sanjeev Satheesh
sumber

Jawaban:

12

Gunakan !*. Itu mengembang ke semua kata kecuali yang pertama (yaitu perintah).

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

Anda dapat menggabungkannya dengan semua fitur !, misalnya:

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

Atau, jika Anda hanya menginginkan kata terakhir, ada dua cara lain:

$ vim arbit.py
$ python !$

atau:

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

Lihat dokumentasi interaksi riwayat bash untuk detail lebih lanjut.

Mikel
sumber
Dengan !:2Anda menggunakan kembali argumen kedua dari perintah sebelumnya.
Matthias Braun
3

Setidaknya ada beberapa cara untuk melakukan ini.

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

yang mengambil argumen terakhir dari perintah sebelumnya seperti halnya:

$ vim arbit.py
$ python !$

atau

$ vim arbit.py
$ python !*

yang mengambil semua argumen dari perintah sebelumnya.

Dijeda sampai pemberitahuan lebih lanjut.
sumber