비디오 길이만큼 긴 bash 스크립트를 실행하는 방법은 무엇입니까?
오후 7시에 bash 스크립트를 시작하기 위해 cron을 설정할 예정이며, 동영상 길이만큼 실행되도록 하고 싶습니다. 어떻게 하나요?
예: bash 스크립트는 오후 7시에 3분 길이의 movie.avi를 시작합니다. Bash 스크립트는 3분 동안 계속 실행된 후 닫힙니다.
답변1
당신이 사용할 수있는 wait
.
Linux 매뉴얼 페이지에서:
잠깐, 잠깐, 잠깐만- 프로세스의 상태가 바뀔 때까지 기다립니다.
이러한 시스템 호출은 모두 호출 프로세스의 하위 프로세스에서 상태 변경을 기다리고 상태가 변경된 하위 프로세스에 대한 정보를 얻는 데 사용됩니다. 상태 변경이 고려됩니다. 하위 프로세스가 종료되고, 하위 프로세스가 신호에 의해 차단되거나 하위 프로세스가 재개됩니다. 하위 프로세스가 종료되는 경우 대기를 실행하면 시스템이 하위 프로세스와 관련된 리소스를 해제할 수 있습니다. 대기가 실행되지 않으면 종료된 하위 프로세스는 "좀비" 상태로 유지됩니다.
예를 들어:
#!/bin/bash
/usr/bin/vlc --vlc_args &
wait
echo "VLC has finished."
poweroff # you said: "then shuts down"
답변2
bash 스크립트가 비디오를 재생하고 비디오가 끝나면 종료되도록 하려면 --play-and-exit
다음과 같이 vlc 옵션을 사용할 수 있습니다.
#! /bin/bash
vlc --play-and-exit /path/to/video.mpg
이렇게 하면 비디오가 끝나면 vlc가 자동으로 종료됩니다.
답변3
스크립트에서 비디오 소프트웨어를 호출하는 방법을 모르지만 영화가 끝난 후 소프트웨어가 닫히면 다음을 사용할 수 있습니다 wait
.
#!/bin/bash
/video/software &
$PID=$!
wait $PID
echo "Movie complete!"