如何在Bash Scripting中包含一个计时器?

Sue*_*ezy 7 bash timestamp

美好的一天!有没有办法在使用bash的脚本中包含一个计时器(时间戳?或者它是什么术语)?比如说; 每60秒,一个特定的功能检查互联网是否关闭,如果是,则它连接到wifi设备,反之亦然.简而言之,该程序不时检查互联网连接.

任何建议/答案将不胜感激.=)

fal*_*tro 18

钝版

while sleep 60; do
  if ! check_internet; then
    if is_wifi; then
       set_wired
    else
       set_wifi
    fi
  fi
done
Run Code Online (Sandbox Code Playgroud)

使用睡眠本身作为循环条件允许您通过杀死睡眠来突破循环(即,如果它是前台进程,ctrl-c将执行).

如果我们谈论几分钟或几小时的间隔,cron可能会做得更好,正如Montecristo指出的那样.


Alb*_*gni 5

你可能想做一个男人的cron.

或者,如果你只需要坚持bash,只需将函数调用放在循环内,并在迭代内睡60.