即使文件已完全允许,也会被拒绝

时间:2017-01-16 15:58:08

标签: linux bash

我正试图制作闹钟 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

2 个答案:

答案 0 :(得分:3)

您需要指定一个程序,该程序将在脚本行中的文件名之前读取mp3文件。任何能够在你的系统上播放mp3文件的程序应该可以解决问题。

权限错误来自于数据文件(例如你的mp3文件)没有(不应该)那里"执行"位设置,因为它们不是程序,不能运行"由操作系统。即使root用户也会遇到同样的问题,因为它不是访问权限问题,但操作系统(正确地)拒绝运行未标记为可执行文件的文件。

激活mp3可执行位(将使用chmod实用程序完成),然后尝试运行它将无法正常工作,因为内容显然无法由操作系统执行。

答案 1 :(得分:2)

您要复制的脚本使用/usr/bin/mpg123播放MP3文件。

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

您只指定了要播放的文件,这不是有效命令。您需要指定用于播放文件的程序(可能需要您首先安装此类程序)。