저는 현재 스트리밍 방송 스트림을 녹화하기 위해 간단한 bash 스크립트를 작성 중입니다. 출근하고 출근 준비를 하는 과정에서 제가 가장 좋아하는 아침 방송을 30분 정도 놓치게 되므로 출근하기 약 15분 전에 녹화를 시작하도록 업무용 컴퓨터의 크론 일정에 설정하도록 이 스크립트를 작성했습니다. .
다음 스크립트 발췌는 작동하지 않습니다.
echo ${FILEFULLPATH} | xargs -t screen -dmS ${STATION_NAME}Stream mplayer ${STATION_URL} -dumpstream -dumpfile
그러나 실행 xargs -t
출력은 제대로 작동합니다. screen -ls
화면에 screen -r
명령이 실제로 실행 중임을 표시합니다. 출력 명령은 다음과 같습니다.
screen -dmS RadioXStream mplayer http://radiostream.net/ -dumpstream -dumpfile ~/radio/radiostream_06102015-1316.mp3
나는 그것을 사용했고 set -x
모든 것이 괜찮아 보입니다. 스크립트 실행 후 실행 시 screen -ls
생성되어야 할 화면이 존재하지 않습니다.
나는 이 명령을 Minecraft 서버용으로 작성한 이전 스크립트를 기반으로 하고 있습니다. 유일한 주요 차이점은 상대 디렉터리를 따옴표로 묶기 때문에 여기에서 파일 경로에 xargs를 사용한다는 것입니다.'~/radio/file.mp3'
답변1
문제는 확실히 xargs를 사용하여 발생합니다. 모든 변수를 변수에 넣는 대신 명령줄에 붙여넣어 문제를 해결했습니다.
screen -dmS ${STATION_NAME}Stream mplayer ${STATION_URL} -dumpstream -dumpfile ${DIRECTORY}${STATION_NAME}_${DATETAG}.mp3
귀하의 의견에 감사드립니다.