Kabuk komutunda! #: 3 ne anlama geliyor?


29

Ack için kurulum kılavuzu bu komutu kullanarak ack betiğini kurmanızı önerir:

curl http://beyondgrep.com/ack-2.14-single-file > ~/bin/ack && chmod 0755 !#:3 

!#:3Sonunda bir tür geri gönderme olduğunu kabul ediyorum , ancak bu ne anlama geliyor? Zsh'da bir eşdeğeri var mı? Google yardımcı olmadı.


5
Bash varsayımıyla; man bash, daha sonra TARİHİ GENİŞLETME araştırın
Jeff Schaller

1
Kedimin klavyeden çok kötü bir zamanda geçtiğini gösterir.
IQAndreas

@ IQAndreas: Bu geçerli bir komuttur, bu nedenle kedinizin kedi yazma dedektörünü yenecek kadar zeki olması gerekir . Açıkçası bu işe yaramaz bir kedi değil. :-) ⁠
G-Man 'Monica'yı Yeniden

Yanıtlar:


32

Bu, bash ile genişletilen özel bir sözdizimidir. Aynı zamanda zsh için çalışıyor.

Bash man sayfasına göre (bölüm TARİHİ GENİŞLETME), desen aşağıdaki şekilde genişler:

  • Olay planlayýcýsý !# olduğu kadar yazılan tüm komut satırı ifade edercurl http://beyondgrep.com/ack-2.14-single-file > ~/bin/ack && chmod 0755
  • :olay göstericisi (bu, tüm satır) ve gösterici (bir alt bölüm seçer ) kelimesi arasında bölünür.
  • kelimesinin dezignatör 3 seçer üçüncü bu durumda, kelime / argüman (sıfır kelime başlar sayımı) ~/bin/ack.

(Genellikle idam önce görüntülenir) son komut satırı: curl http://beyondgrep.com/ack-2.14-single-file > ~/bin/ack && chmod 0755 ~/bin/ack.

Ayrıntılar için, bash el kitabına bakın veya zsh el kitabına çok benzer


7
Yardımcı olamam ama merak ediyorum: Bu özelliğin kim iyi bir fikir olacağını kim düşündü?
Rhymoid

3
@ Rhymoid, !#fazla kullanmıyorum , ama !!, !$ve !*, !sud:pve diğerleri çoğu son derece yararlı ve onları her zaman kullanıyorum. Check out unix.stackexchange.com/a/67/135943
Joker

11

İçinde bashtarih ikamesidir (tüm tarih ikameleri ile başlar !). Spesifik olarak, !#şu ana kadar komut satırındaki her şey anlamına gelir ve ': 3' eki üçüncü kelime anlamına gelir (0'dan başlayan sayım).

Yani, yukarıdaki komut çevirir !#:3içine ~/bin/ack.

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.