명령이 실행될 때 프롬프트를 표시하는 방법은 무엇입니까?

명령이 실행될 때 프롬프트를 표시하는 방법은 무엇입니까?

명령이 시작될 때 프롬프트에 타임스탬프를 어떻게 추가합니까? 그 사이 어딘가에서 해결책을 찾고 있어요정적 프롬프트그리고연속시계.

주요 차이점은 프롬프트가 로드될 때 정적 프롬프트가 표시된다는 것입니다. 몇 분 동안 그대로 둔 다음 명령을 입력하면 그때 다른 타임스탬프를 추가하고 싶습니다. 내 목표는 명령을 실행하는 데 걸리는 시간과 프롬프트가 유휴 상태인 시간의 차이를 쉽게 확인할 수 있는 것입니다. bash를 사용하고 싶다는 점을 제외하고 연속 시계 응답의 문제점은 모든 것을 플러시하기 때문에 시작 타임스탬프를 잃는다는 것입니다.

예를 들어, 새 셸을 열 때 다음과 같은 프롬프트가 표시되기를 원합니다.

10:30:21 jeff ~ $

그런 다음 실제로 명령 입력을 마치고 클릭하기 전에 잠시 동안 그대로 있다고 가정해 보겠습니다.Enter

10:30:21 jeff ~ 10:31:28 $ ./long_running.sh
10:36:52 jeff ~ $

실제로 명령을 실행했을 때를 보여주는 또 다른 타임스탬프가 첨부되어 있습니다. 다음 프롬프트의 시작 타임스탬프를 빼면 명령을 실행하는 데 약 5분 정도 걸린다는 것을 쉽게 알 수 있습니다.

답변1

각 명령이 실행되기 전에 호출할 수 있는 DEBUG 트랩이 있습니다.

예를 들어

trap 'echo -e "\nStarted at: $(date)\n"' DEBUG

그렇다면 다음과 같이 하세요.

$ trap 'echo -e "\nStarted at: $(date)\n"' DEBUG
$ pwd

Started at: Thu Aug 18 11:59:33 EDT 2016

/home/sweh
$ echo hello

Started at: Thu Aug 18 11:59:35 EDT 2016

hello
$ sleep 100

Started at: Thu Aug 18 11:59:37 EDT 2016

재작성 프롬프트는 없지만 각 명령 전에 내용이 어떻게 출력되는지 확인할 수 있습니다. 필요에 따라 트랩 기능을 복잡하게 만들 수 있습니다.

답변2

체크아웃 시간 bash_command_timer.sh은 입니다 jichu4n.

https://github.com/jichu4n/bash-command-timer/

.bashrc전체 날짜를 포함하도록 내 것을 수정했습니다 .

# https://github.com/jichu4n/bash-command-timer
. bin/bash_command_timer.sh
export BCT_TIME_FORMAT='%Y-%m-%d %H:%M:%S'

산출:

$ echo 1; echo 2; echo 3
1
2
3
[ 0s031 | 2017-09-18 17:30:29 ]

그의 읽어보기에 따르면:

스크립트 작동 방식에 대한 설명을 보려면 내 블로그 게시물인 DEBUG Trap 및 PROMPT_COMMAND in Bash를 확인하세요.

관련 정보