文件中的日期函数在系统启动时启动- bash



我试图在启动时运行bash脚本。这个脚本的目的是在设定的时间(比如每小时15分)用音乐播放器播放一个mp3文件。

我的bash脚本如下:
#!/bin/sh
while :
do
    S=$(date)
    T=${S:14:2} #this gives me the minute column of the current time
    if [ $T -eq 15 ]
then
    mplayer path_to_mp3_file
fi
done

当我从终端运行这个bash文件时,它工作得非常好。然而,当我用完全相同的脚本重新启动我的Linux计算机时,它无法工作(其他音乐播放器(如vlc)也是如此)。当只有包含mplayer file_path命令时,脚本也可以工作。

我尝试设置一个标准程序来打开脚本,gnome-terminal.wrapper。我能够将程序设置为启动应用程序的方式是在菜单>Preferences>Startup applications并将文件添加到已经存在的应用程序中。

你的问题有两部分。1. 播放mp3, 2。(大概只有当用户登录时)。对于第1部分,使用crontab并让cron守护进程在整点15分运行脚本。使用crontab -e创建crontab文件(用于编辑crontab)。crontab条目的格式为:

* * * * * command_to_execute
| | | | |
| | | | +- day of week  (0-6) (Sunday = 0)
| | | +--- month        (1-12)
| | +----- day of month (1-31)
| +------- hour         (0-23)
+--------- minute       (0-59)

在您的情况下,您需要:

15 * * * * playmymp3.sh

Part 2在您的脚本中,您需要检查用户是否已登录。为了只在您登录时播放音乐,请测试您是否使用users登录。像这样在playmymp3.sh应该工作:

if grep -q "yourlogin" < <( users ); then
    #play mp3 file
fi

试一试,让我知道。

Try with:

T=$(date +%M)

代替:

S=$(date)
T=${S:14:2} #this gives me the minute column of the current time

(注意:你的脚本进入一个非常快的循环时,没有声音必须播放,我建议你包括一个睡眠命令)

我道歉。

在将脚本设置为启动文件时,我没有注意到我必须提供一个实际的命令bash script_path,而不是仅仅提供文件路径。

有了这个,我的问题似乎解决了

相关内容

  • 没有找到相关文章

最新更新