bash 스크립트의 환경 변수에 $SECONDS를 넣을 수 있나요?

bash 스크립트의 환경 변수에 $SECONDS를 넣을 수 있나요?

$SECONDS나는 환경 변수에 시간, 분, 초를 표시 할 수 있기를 원하므로 $RUNTIME사용하고 싶을 때마다 모든 것을 사용하기보다는 스크립트의 다양한 위치에서 사용하기만 하면 됩니다.

변수에 넣을 수 있도록 어떤 형식을 사용해야 할지 모르겠습니다.

export RUNTIME="$(($SECONDS / 3600))hrs $((($SECONDS / 60) % 60))min $(($SECONDS % 60))sec"

따라서 간단히 다음과 같이 할 수 있습니다.

echo "The script ran for: $RUNTIME"

감사해요.

답변1

RUNTIME을 변수로 정의하면 항상 정의된 런타임에 대한 상수 값이 출력되므로 도움이 되지 않습니다. function대신 쉘을 사용해보십시오 .

runtime() { 
   printf "%dhrs %dmin %dsec\n" $((SECONDS / 3600)) \
                                $(((SECONDS / 60) % 60)) \
                                $(($SECONDS % 60)); 
}
runtime

그리고 그것을 호출하거나 "명령 대체"와 함께 사용하십시오.

관련 정보