2009-07-24 14 views
9

Genellikle "zaman" komutuyla yürütmeleri açıkça önekle unutuyorum, ideal olarak bir sonraki kabuk isteminde son komutun ne kadar gerçek zaman aldığını görüyorum (her komutta).Her yürütülen komutu otomatik olarak zamanla ve Bash komutunda gösterilsin mi?

Halihazırda bash belgelerine baktım, ancak ilgili hiçbir şey bulamadım.

$ bind '"\C-j": "\C-atime \C-m"' 

Veya ~/.inputrc bu koymak:

+3

Bu, Unix/Linux Stackexchange için iyi bir sorudur. – Flimm

cevap

9

Bunu yapabilirsiniz Eğer time sleep 1 yapmak istediğinizde

"\C-j": "\C-atime \C-m" 

Sonra sleep 1 yazıp basın ediyorum Ctrl + J yerine girin.

j ve m'u bağlama komutunda (veya .inputrc dosyasında) değiştirmeyi önermem. 'a her girdiğinizde, time eklersiniz, bu da oldukça can sıkıcı olabilir ve çok satırlı bir komut yazarken hatalara neden olabilir.

Sen daha kompakt time çıktısını yapmak senin ~/.bashrc bu ekleyebilirsiniz:

export TIMEFORMAT='r: %R, u: %U, s: %S' 

(benzer Cevabıma here için.)

+0

+1 ilginç bir numara. – neuro

+1

Harika, teşekkürler! (üzgünüm cevap vermesi çok uzun sürdü) – mark

6

Another stackoverflow thread temelde aynı soruyu kapsamaktadır.

trap 'SECONDS=0' DEBUG 
export PS1='your_normal_prompt_here ($SECONDS) # ' 

... bir tamsayı saniye sayısını görüntüler, ya da: bu iş parçacığı Cevabım olarak özetlenebilir MM: "Ddays, HH arayacak

seconds2days() { # convert integer seconds to Ddays,HH:MM:SS 
    printf "%ddays,%02d:%02d:%02d" $(((($1/60)/60)/24)) \ 
    $(((($1/60)/60)%24)) $((($1/60)%60)) $(($1%60)) | 
    sed 's/^1days/1day/;s/^0days,\(00:\)*//;s/^0//' ; } 
trap 'SECONDS=0' DEBUG 
PS1='other_prompt_stuff_here ($(seconds2days $SECONDS)) # ' 

SS "önde gelen boş değerlerle kaldırıldı.

İlgili konular