2009-07-24 9 views

Répondre

9

Vous pouvez le faire:

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

Ou mettre dans votre ~/.inputrc:

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

Puis, quand vous voulez faire time sleep 1 si vous tapez sleep 1 et appuyez sur Ctrl + J au lieu de Entrez.

Je ne recommanderais pas d'échanger les j et m dans la commande bind (ou dans le fichier .inputrc). Chaque fois que vous appuyez sur Entrez vous obtiendrez time ajouté qui pourrait être assez ennuyeux et causerait des erreurs lors de la frappe d'une commande multi-ligne.

Vous pouvez ajouter à votre ~/.bashrc pour rendre la sortie de time plus compact:

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

(similaire à ma réponse here.)

+0

+ 1 astuce intéressante. – neuro

+1

Super, merci! (désolé, il a fallu si longtemps pour répondre) – mark

6

Another stackoverflow thread couvre essentiellement la même question. Ma réponse dans ce fil peut se résumer comme:

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

... pour afficher le nombre de secondes comme un entier, ou:

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)) # ' 

..pour « Ddays, HH: MM: SS "avec les principales valeurs vides supprimées.

Questions connexes