Linux SHELL脚本内部的时间控制

Linux SHELL脚本内部的时间控制,linux,bash,shell,unix,Linux,Bash,Shell,Unix,我试图在SHELL脚本中设置一个时间,以便它在工作时间内自动运行,并在设置的时间内停止运行,在设置的时间后重新运行。 在设定的时间量或时间段内不运行。。 时间取决于要处理多少事情。 通常需要3~5个小时。。但是我想让这个程序在凌晨12点到凌晨3点暂停,然后再运行 比如说 if [ -d /tmp/test ] then for dir in $(ls -d $DIR1/* | grep test) do .... done fi 如何在Shell脚

我试图在SHELL脚本中设置一个时间,以便它在工作时间内自动运行,并在设置的时间内停止运行,在设置的时间后重新运行。 在设定的时间量或时间段内不运行。。 时间取决于要处理多少事情。 通常需要3~5个小时。。但是我想让这个程序在凌晨12点到凌晨3点暂停,然后再运行

比如说

if [ -d /tmp/test ] 
then 
    for dir in $(ls -d $DIR1/* | grep test)
    do
        ....
    done 
fi
如何在Shell脚本中编写此脚本

我的观点是运行一个完全自动化的shell脚本。。它只运行一次,处理这一次运行期间的所有必要工作。。但在给定的时间,它应该暂停并再次运行

如何实现这个Shell内部脚本


有些人建议使用cron,但这不只是用于不进入shell脚本的执行命令吗?这不也是为了设定它应该运行多长时间吗

1您的描述听起来有点混乱,但是,如果我理解您的要求,请检查小时数,如果是“安静时间”,则执行计时器循环或其他有用的操作,或者干脆退出

2正如其他人所建议的,使用cron在每天凌晨3:01“启动”此功能-如果它在每天午夜退出

3将“else”例程更改为直接退出

HOUR=$(date +%H)
if [[ ${HOUR} -ge 3 ]]
then
     go_do_your_stuff
else
     we_are_in_time_loop
fi

有点不清楚这意味着什么:它只运行一次,在这一次运行中处理所有必要的工作。。但在给定的时间,它应该停止并再次运行。它说它应该只运行一次,然后说它应该再次运行。可能它执行这些操作的条件还不清楚。另外,对于不进入shell脚本的执行命令Cron是一个调度器,它将在给定的时间执行任何给定的命令,在这种情况下,shell脚本可以是一个程序。此外,cron与程序运行的时间无关,它只执行命令。也许您要寻找的是Bash内置的wait或sleep命令。Wait可用于暂停脚本,直到特定PID完成,而sleep可用于简单地将脚本暂停一定时间,例如:当脚本到达该行时,sleep 600会将整个脚本暂停10分钟。除非您有一个速度为10+的warp drive,否则您无法控制时间。:/try尝试对您需要的内容进行更精确的定义/。编写一个脚本来完成所有任务处理,而不必担心现在是什么时间。编写另一个脚本,在适当的时间对第一个脚本执行kill-STOP和kill-CONT以暂停和取消暂停。