Shell腳本內部每隔1秒查詢一次當前時間、日期以及星期數,當檢測到當前星期數week非0或6(0表明星期天,6表明星期六)且時間curTime大於指定時間startTime時,執行指定的程序program。爲了保證天天僅執行一次指定程序program,還引用了變量isFirstTime作標記bash
#!/bin/sh #Section configuration(配置部分) #Task Time ,example:203000(Time 20:30:00);190000(Time 19:00:00); startTime=113200 #the programs you want to execute(要執行的程序) program=ps #Section promgram (程序執行部分) perDate=$(date "+%Y%m%d") echo $perDate isNewDay=1 isFirstTime=1 echo 'Task schedule Time: ('$startTime') program: ('$program') Waiting...' while true ; do curTime=$(date "+%H%M%S") #the programs you want to execute(要執行的程序) program=ps #Section promgram (程序執行部分) perDate=$(date "+%Y%m%d") echo $perDate isNewDay=1 isFirstTime=1 echo 'Task schedule Time: ('$startTime') program: ('$program') Waiting...' while true ; do curTime=$(date "+%H%M%S") curDate=$(date "+%Y%m%d") #Check week day(週末不執行) #0表明星期天,6表明星期六 week=`date +%w` if [ $week -eq 6 ] || [ $week -eq 0 ];then isNewDay=0 sleep 1 continue else #check and run script(工做日執行) if [ "$isNewDay" -eq "1" ];then if [ "$curTime" -gt "$startTime" ];then if [ "$isFirstTime" -eq "0" ];then echo 'The program ('$program') Running...' $program echo 'The program ('$program') Stopped...' fi isNewDay=0 else if [ "$isFirstTime" -eq "1" ];then echo 'New Day: ('$curDate') Task schedule Time: ('$startTime') Waiting...' isFirstTime=0 fi fi else #new day start(開始新的一天) if [ "$curDate" -gt "$perDate" ];then echo 'New Day: ('$curDate') Task schedule Time: ('$startTime') Waiting...' isNewDay=1 perDate=$curDate fi fi sleep 1 fi done