Her bash komutundan önce bir komut


Yanıtlar:


37

Daha önce yanlış cevap için özür dilerim, sorunuzu yanlış anladım.

Kabuk üzerinde yürüttüğünüz her komuttan önce zaman eklemek için böyle bir şey yapabilirsiniz

bind 'RETURN: "\e[1~time \e[4~\n"'

Bu, dönüş anahtarını yeniden bağlayacaktır. Şimdi yeni satır yazmak yerine return tuşuna her bastığınızda, satırın başına gider, 'zaman' metnini ve bir boşluk girin, satırın sonuna gidin ve satırsonunu girin \ n böylece istenen etki.

Enter Key'inizi feda etmek istemiyorsanız, komutu aşağıdaki gibi bağlayarak F12 gibi 'ikinci' benchmark-enter Key yapabilirsiniz.

bind '"\e[24~": "\e[1~time \e[4~\n"'

Şimdi dönüş anahtarını değiştirmek yerine F12'yi bağladınız.

Tüm bunların arka planı, bash komutları okumak için GNU okuma satırını kullanmasıdır. Bu nedenle readline, daha fazla komut manipülasyonu vb.İçin iyi bir başlangıç ​​noktası olacaktır.


1
+1 güzel çözüm! Ben normal enter anahtar ayrı bir kıyaslama enter tuşuna sahip olma fikrini seviyorum.
quack quixote

bu akıllıca bir fikir. Her komuttan önce kullanıcı tanımlı bir işlevi yürütmesi için nasıl genelleştirebilirsiniz? Nasıl bash kodu ve bir readline işlevi aynı bağlama birleştirmek bilmiyorum.
Gilles 'SO- kötü olmayı bırak

Bu Mac'te çalışmaz mı? Komutu terminalde çalıştırdım ve enter anahtarım şimdi hiçbir şey yapmıyor gibi görünüyor.
akki

6

Bunun bu sorunun kapsamı dışında olduğunun farkındayım ama ...

In zshsize aşağıdaki değişkeni ayarlarsanız (ki bildiğim kadarıyla Bash süper dizi etmektir) .zshrcdosyası:

export REPORTTIME=5

5 saniyeden uzun süren her komut (eminim) çıktısını görüntüler time. Daha hızlı tamamlanan tüm komutlar bunu yapmaz. Ve bu durumlarda kişi gerçekten umursamıyor, bu yüzden işleri karıştırmamak güzel. Ayrıca, zshsiz eğlenirken hoşunuza gidebilecek diğer birçok harika özellik var.


Güzel ipucu. İken zsh mutlaka işlevselliği bir üst vardır bash , onun sözdizimi sentaksının bir üst değil bash yüzden değiştirilmesi bir “düşüş” değildir.
Chris Johnsen

1

Bilgi istem dizenize \ t ekleyin. İstemi içerdiğiniz noktada zamanı isteminize ekleyecektir. Bkz. Http://www.ibm.com/developerworks/linux/library/l-tip-prompt/


Bu, komut isteminin oluşturulduğu saattir, önceki komutu yürütmek için gereken zaman değildir.
sonraki duyuruya kadar duraklatıldı.

Doğru; ve bir sonraki istemin geçerli saati arasındaki fark çalışma zamanıdır (eksi yazma zamanı, elbette - yapıştırma arkadaşınızdır). Önemli atamalar gerekli değildir.
JRobert

0

PS1 böyle bir şey yapmanın standart yolu gibi görünüyor.


2
Gerçek yürütme komutunu değil, görüntüyü değiştirir.
user1686

@grawity Doğru - ama tam olarak istediğinizi elde edersiniz ... her satıra eklenen zaman.
Jason Sundram

3
Hangisi tamamen farklıdır time(bir komutun çalıştırılmasının ne kadar sürdüğünü ölçer).
user1686

@grawity, sanırım haklısın - çıkartmayı kendin yapmak zorunda kalacaksın. Görünüşe göre @Jrobert aynı fikre sahipti.
Jason Sundram
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.