linux - 如何在一定时间内循环?

标签 linux bash shell testing

我正在创建一个脚本,该脚本应该等到特定文件(例如 stop.dat)出现或经过特定时间(例如 500 秒)后。

我知道如何等到文件出现:

while [ ! -f ./stop.dat ]; do
  sleep 30
done

如何在我的 while 循环中添加其他语句?

最佳答案

如果你想这样做,那么你可以这样做:

nap=30; slept=0
while [ ! -f ./stop.dat ] && ((slept<500)); do 
    sleep $nap; 
    slept=$((slept+nap))
done

使用 inotifywait 而不是轮询是更合适的方法。

关于linux - 如何在一定时间内循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43661855/

相关文章:

bash - grep for period=N while N 比 X 长,这句话的位置在行与行之间发生变化

bash - 为什么我不能在 bash 脚本中使用作业控制?

linux - 在 Windows 上为 Linux 编程

linux - 如何配置和构建内核以定义 CONFIG_* 并生成 autoconf.h

c++ - 从 C++ 调用较低级别的系统命令

bash - 在 Mac 上运行 Docker,构建正常,运行错误 : :/bin/sh: 1: [: missing ]

linux - 为每个文件夹定义 oh my zsh 别名

c - 我不小心换了一个shell命令。有什么办法可以恢复我的源代码吗?

linux - 嵌入式 Linux shell (BusyBox) 检查文件列表是否存在并运行命令

linux - Shell脚本,并行和多线程?