Bash ile kullandığınız önceki komutun geçen (n-th?) Argümanını nasıl hatırlarsınız?


9

Genellikle aynı dosyada farklı komutlar yayınlarım. Örneğin:

$ youtube-dl aB54c4p0eo #I made this video id up on the spot
$ mv aB54c4p0eo.flv kittens.flv
$ vlc kittens.flv
$ rm kittens.flv

Geçerli olarak önceki komuttan bağımsız değişkenleri yeniden kullanmamın bir yolu var mı?

Yanıtlar:


15

alt-.Kesinlikle güzel, ama zaten istediğiniz argüman sayılı olduğunu bilmek olur, daha hızlı olabilir: !:nbir nönceki komuta inci argüman.

Bunu sihirli alanla birleştirmek genellikle yararlı olur. Bunu etkinleştirmek için .inputrc'nizi girin Space: magic-space. Bu etkinleştirildiğinde, sonra boşluk !:2yazdığınızda, enter tuşuna basmanızı beklemek yerine hemen değerine genişletilir. Yanlışlıkla yanlış argümanı ele geçirmekten kurtarır.


9

Bash'ta Alt+ kısayolunu kullanabilirsiniz ..
Bir kez vurmak size son argümanı verecektir. Daha fazla vurursanız, son argümanlarınız arasında geçiş yapabilirsiniz.


4

Bash'da, "önceki komut satırındaki son sözcük" ün göstericisi !!$:

$ echo hello world
hello world
$ echo goodbye !!$
echo goodbye world # this is bash echoing actual cmd line before execution
goodbye world

Komut satırının ilk kısmını değiştirmek için "düzeltme işareti sözdizimi" ni de kullanabilirsiniz ; aynı dosyada birkaç komut yürütmek istiyorsanız bu kullanışlı olur:

file file.dat
^file^ls -l^ #gives `ls -l file.dat`
^ls -l^stat # gives `stat file.dat`

Daha birçok olasılık var; ayrıntılar için bash (1) kılavuz sayfasındaki "Tarih değiştirme" bölümüne bakın.


Bu işaret sözdizimi aslında oka basmaktan ve komut satırını kendiniz düzenlemekten daha yavaştır ...
badp

2
!!$de yazılabilir !$.
Mikel

3

Bash'de, yazdığınız son komutun son komut satırı argümanı için $ _ kullanabilirsiniz:

$ youtube-dl aB54c4p0eo #I made this video id up on the spot
$ mv aB54c4p0eo.flv kittens.flv
$ vlc kittens.flv
$ rm kittens.flv

dönüşür:

$ youtube-dl aB54c4p0eo #I made this video id up on the spot
$ mv $_ kittens.flv
$ vlc $_
$ rm $_

0

Nispeten yavaş bir yol, önceki komutu geri çağırmak ve önceki komutu yenisiyle değiştirmektir.


Daha hızlı bir şey umuyorum :)
badp
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.