답변:
bash
변수를 살펴 보는 것이 좋습니다 SECONDS
.
SECONDS :이 매개 변수가 참조 될 때마다 쉘 호출 이후의 시간 (초)이 리턴됩니다. 값이 SECONDS에 지정되면 후속 참조시 리턴되는 값은 지정 이후의 초 수에 지정된 값을 더한 값입니다.
따라서 스크립트 끝에서이 변수를 간단히 인쇄 할 수 있습니다. 또는 프로그램의 일부만 시간을 측정하려는 경우 SECONDS=0
측정 된 명령 블록의 시작 부분에 설정 하고 마지막에이 변수에 저장된 값을 사용하십시오.
SECONDS=0
하나의 스크립트와 다른 스크립트에서 같은 일에, 그들은 서로 방해?
START_TIME=$SECONDS; dosomething; ELAPSED_TIME=$(($SECONDS - $START_TIME))
. 이것은 동시에 사용하기에 약간 더 유연 해 보입니다.
스크립트를 중첩하십시오. 이메일을 보내려면 여러 가지 옵션이 있습니다. 개인적으로 msmtp를 선호합니다. 헤더를 직접 "here"스타일 (인라인)로 정의하거나 별도의 파일을 사용하여 함께 묶을 수 있습니다. 펄, 파이썬 등을 포함하는 모든 종류의 대안이 있습니다.
Reply-To: someone@somehost
Sender: someone <someone@somehost>
To: somebody@somewhere.else
Subject: some subject
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/html; charset="iso-8859-1"
마지막 빈 줄이 중요합니다. 따라서 메시지를 msmtp로 분류하십시오.
cat assembled.eml | msmtp somebody@somewhere.else
비관론자는 성공할 때까지 합리적인 횟수만큼 반복됩니다.
페이로드는 html 일 수 있으며 PHP로 생성 될 수 있습니다.
하룻밤 사이에 "배치"작업에 대한 매우 추악한 대안은 cronjob을 생성하는 것이며 stdout / stderr 대신 출력이 이메일로 전송됩니다.
$SECONDS
. 대단해! 여기에 추가하여 초를시 : 분 : 초로 변환 할 수 있습니다date -d "1970-01-01 ${SECONDS} sec" +'%k:%M:%S'
(man date
자세한 형식 지정 옵션 참조 ).