Linux 如果命令在X秒内为true,则在bashshell脚本中运行代码

Linux 如果命令在X秒内为true,则在bashshell脚本中运行代码,linux,bash,if-statement,time,boolean,Linux,Bash,If Statement,Time,Boolean,我希望if语句仅在语句中的条件至少连续3秒为true时运行,如何在linux bash shell脚本中实现它? 我以前没有做过,在谷歌上也找不到任何具体的东西,如果有任何帮助,我将不胜感激! 我的意思不是像一个循环那样执行x次条件,而是一个函数,它在运行一个代码块之前检查条件是否为真,至少持续x秒/分钟 提前感谢您可以定义此函数: 检查条件(){ 本地站点=$($(日期+%s)+3)) 当:;做 条件&返回1 [$(日期+%s)-gt$停止]&中断 完成 } 如果cond在3秒内为false

我希望if语句仅在语句中的条件至少连续3秒为true时运行,如何在linux bash shell脚本中实现它? 我以前没有做过,在谷歌上也找不到任何具体的东西,如果有任何帮助,我将不胜感激! 我的意思不是像一个循环那样执行x次条件,而是一个函数,它在运行一个代码块之前检查条件是否为真,至少持续x秒/分钟


提前感谢

您可以定义此函数:

检查条件(){
本地站点=$($(日期+%s)+3))
当:;做
条件&返回1
[$(日期+%s)-gt$停止]&中断
完成
}

如果
cond
在3秒内为false,则返回1。否则返回0。

检查一次,等待3秒,然后再次检查,类似这样

$ test=
 [[ $test ]] && { sleep 3; [[ $test ]]; } && echo ok || echo fail
fail

$ test=1
$ [[ $test ]] && { sleep 3; [[ $test ]]; } && echo ok || echo fail
ok

bash实际上没有任何随时间监视条件的概念。您可以反复检查它,直到3秒钟过去,或者如果有一个命令监视它,您可以使用它,但我认为bash中没有直接这样的东西。你想监视什么?