일부 작업을 수행하는 스크립트가 있습니다. 적절한 방식으로 수행하지만 끝나기까지 시간이 걸립니다. "작업이 지금 실행 중"이라는 것을 시뮬레이션하고 싶기 때문에 스피너 커서 애니메이션을 추가했습니다.
스크립트 시작 부분에서 호출 한 다음 해당 함수의 PID를 변수에 할당하고 모든 작업이 완료되면 간단히 죽여 애니메이션을 중지합니다.
#!/bin/bash
spinner &
SPINNER_PID=$!
# a lot of stuff going on here...
# takes some time to finish
kill $SPINNER_PID &>/dev/null
printf "All done"
기능 정의 :
spinner() {
local i sp n
sp='/-\|'
n=${#sp}
while sleep 0.1; do
printf "%s\b" "${sp:i++%n:1}"
done
}
내가 방해하지 않으면 모든 것이 잘 작동합니다.
을 호출하여 긴 작업을 취소하고 싶다고 상상해보십시오 Control+C
. 취소되지만 스피너는 다른 무한 루프에 주목하기 때문에 분명히 여전히 애니메이션됩니다.
스크립트가 수동으로 취소되고 도달하지 않을 때 어떻게 죽일 수 kill $SPINNER_PID &>/dev/null
있습니까?
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다