실행 된 모든 명령 및 표시 시점을 Bash 프롬프트로 자동 타이핑 하시겠습니까? [복제하다

StackOverflow https://stackoverflow.com/questions/1176386

  •  19-09-2019
  •  | 
  •  

문제

이 질문은 이미 여기에 답이 있습니다.

나는 종종 "Time"명령으로 실행을 명시 적으로 접두사하는 것을 잊어 버린다. 이상적으로는 다음 쉘 프롬프트에서 마지막 명령이 모든 명령에 얼마나 많은 실시간을 취했는지 (모든 명령에)

나는 이미 bash 문서를 통해 닦았지만 관련이있는 것을 찾을 수 없었습니다.

도움이 되었습니까?

해결책

당신은 이것을 할 수 있습니다 :

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

또는 이것을 당신의 안에 넣으십시오 ~/.inputrc:

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

그런 다음하고 싶을 때 time sleep 1 당신은 입력 할 것입니다 sleep 1 그리고 누르십시오 Ctrl 키+제이 대신에 입력하다.

나는 교환을 권장하지 않을 것입니다 j 그리고 m bind 명령 (또는 .inputrc 파일)에서. 당신이 누를 때마다 입력하다 당신은 얻을 것입니다 time 꽤 성가 시게 할 수 있고 멀티 라인 명령을 입력 할 때 오류가 발생합니다.

당신은 이것을 당신에게 추가 할 수 있습니다 ~/.bashrc 출력을 만들기 위해 time 더 컴팩트 :

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

(내 대답과 유사합니다 여기.)

다른 팁

다른 stackoverflow 스레드 본질적으로 같은 질문을 다룹니다. 해당 스레드에 대한 내 대답은 다음과 같이 요약 될 수 있습니다.

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

... 정수로 몇 초를 표시하거나 :

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

.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top