Bash 日期检查器脚本
我需要关于编写bash脚本的帮助。我对脚本编写知之甚少,但我愿意学习 我有一个文件,其中的行如下:Bash 日期检查器脚本,bash,Bash,我需要关于编写bash脚本的帮助。我对脚本编写知之甚少,但我愿意学习 我有一个文件,其中的行如下:1204200141345_song.mp3。数字是日期和时间,如日期=12,月份=04,年份=2014,小时=13,分钟=45 我需要一个脚本,它将读取整个文件,如果一行匹配当前日期和时间,它将在正确的时间通过mplayer/mpg123播放mp3。当mp3结束时,它必须继续播放。文件一直在更改。新线路进入,其他线路被拆除。只要电脑打开,脚本就会运行 我不知道从哪里开始,任何建议都很感激。所以,你
1204200141345_song.mp3
。数字是日期和时间,如日期=12,月份=04,年份=2014,小时=13,分钟=45
我需要一个脚本,它将读取整个文件,如果一行匹配当前日期和时间,它将在正确的时间通过mplayer/mpg123播放mp3。当mp3结束时,它必须继续播放。文件一直在更改。新线路进入,其他线路被拆除。只要电脑打开,脚本就会运行
我不知道从哪里开始,任何建议都很感激。所以,你愿意学习-一些起点 只要电脑打开,脚本就会运行 好的,这可以通过一个将永远运行的循环来实现,比如下一个循环:
while :
do
some_commands
done
当mp3结束时,它必须继续播放
如上所述-如果某些_命令
包含播放文件的命令-脚本将等待命令完成,并将重新开始-一次又一次,一次又一次。。。永远
文件一直在更改。新的生产线投入使用,其他生产线也投入使用
删除
不需要关心,直到它成为一个文件
。。。如果一行匹配
通过mplayer/mpg123在播放mp3的当前日期和时间
正确的时间
因此,首先需要以所需的格式获取日期。这可以通过date
命令实现
所需格式为%d%m%Y%H%m
,因此
date +"%d%m%Y%H%M"
将以所需格式打印当前日期/时间
将命令的结果分配给bash
中的某个变量可以使用
variable=$(command argumens)
所以
将当前日期/时间分配为变量datestr
。。。通读文件,如果一行与当前日期和时间匹配
Read-thru和match
可以使用grep
命令()完成,因此,您需要使用
grep "what_want_to_match" filename_where_want_to_match.txt
grep退出时带有一个状态代码
- 0-找到匹配项
- 1-未找到匹配项
- 2-该文件不存在
$?
中。您可以测试退出状态,例如使用bash的case
构造,如:
some_command
case $? in
2) echo "The some_command exited with status 2" ; exit 2 ;;
1) echo "with status 1" ; do_something_else ;;
0) echo "normal exit" ;;
esac
现在,您已经有了足够的信息,可以尝试自己编写脚本,如果遇到某些特定错误,请再次询问……;) 也许当你表现出最小的努力来解决问题时,你可以得到更多的答案。。。欢迎来到SO-并阅读顶部的帮助。。。比如:询问代码的问题必须证明对正在解决的问题的最低理解。包括尝试的解决方案,为什么它们不起作用,以及预期的结果…您的文件名是从2004年开始的
some_command
case $? in
2) echo "The some_command exited with status 2" ; exit 2 ;;
1) echo "with status 1" ; do_something_else ;;
0) echo "normal exit" ;;
esac