2017-01-16 2 views
-4

알람 시계를 만들려고 시도하는 중 https://milkteafuzz.com/j/2012/02/22/a-simple-bash-alarm-clock/ 하지만 권한이 거부되었습니다. usr/bin에있는 파일을 실행해야합니까?파일이 가득차 있어도 권한이 거부 됨

#!/bin/bash 
printf "What time are you setting this alarm for? " 
read date 
echo Okay! Will ring you on $(date --date="$date"). 
sleep $(($(date --date="$date" +%s) - $(date +%s))); 
echo Wake up! 
while true; do 
/home/-------/Music/mapleleaf.mp3 
    sleep 1 
done 
+0

'/ home/yehuda/Music/mapleleaf.mp3'에 대한 사용 권한은 무엇입니까? – melpomene

+4

MP3 파일을 마치 프로그램처럼 실행하려고합니다. 그렇지 않습니다. 재생할 파일을 입력으로 사용하는 프로그램이 필요합니다. (복사하고있는 스크립트는'/ usr/bin/mpg123'을 사용합니다.) – chepner

+1

명확히하십시오 : (1) 파일에'#! '앞에 공백이 있습니까? (2) 스크립트를 실행하거나 "Wake up!"후에 만 "허가가 거부되었습니다"_immediately_ 가나 요? 인쇄됩니까? (3)'ls -l thenameofthisscript'의 _complete, unedited_ 출력을 게시하십시오. – zwol

답변

2

스크립트는 당신이 복사가 MP3 파일을 재생 /usr/bin/mpg123를 사용하다 : 나도 또한 didnt 한 일 내 코드가 있음을 시도했다.

/usr/bin/mpg123 ~/alarm.mp3 
^^^^^^^^^^^^^^^ 
    program 
       ^^^^^^^^^^^ 
       file to play 

재생할 파일 만 지정 했으므로 올바른 명령이 아닙니다. 파일을 재생할 때 사용할 프로그램을 지정해야합니다 (이러한 프로그램을 먼저 설치해야 할 수도 있음).

+0

감사합니다. 정답은 –

3

스크립트에서 줄의 파일 이름 앞에 mp3 파일을 읽는 프로그램을 지정해야합니다. 당신의 체계에 mp3 파일을 할 수있는 어떤 프로그램든지 트릭을해야한다.

권한 오류는 데이터 파일 (예 : mp3 파일)에 "실행"비트가 설정되어 있지 않아야한다는 사실에 기인합니다. 이는 프로그램이 아니며 OS에서 "실행할"수 없기 때문입니다. 루트 사용자조차도 액세스 권한 문제가 아니기 때문에 동일한 문제가 발생하지만 OS는 실행 파일로 표시되지 않은 파일을 실행하는 것을 거부합니다.

유틸리티로 실행되는 mp3 실행 비트를 활성화 한 다음 실행하려고하면 내용이 OS에서 실행하기에 분명 유효하지 않으므로 작동하지 않습니다.

+0

입니다. _crash_는 아닙니다. OS는 여전히 유효한 실행 파일이 아니라는 것을 인식합니다. 'bash : foo.mp3 : 바이너리 파일을 실행할 수 없습니다 '또는'foo.mp3 : Exec 형식 오류'와 같은 다른, 여전히 비밀 스럽지만 다소 온 포인트 오류 메시지가 나타납니다. – zwol

+0

예. "vlc"와 같은 프로그램으로 mp3 파일을 재생해야한다는 것을 알았습니다. 감사합니다. –

관련 문제