1

我有一个小脚本,可以连续检查某些条件,一旦满足该条件,程序就应该执行。这可以做到吗。我曾想过使用脚本每 5 分钟运行一次的 crontab,但现在我希望在没有 crontab 的情况下完成

4

1 回答 1

1

您可能想先创建一个无限循环,然后在该循​​环中您可能想验证您的条件或稍等片刻。由于您没有提及您想使用哪种脚本语言,我将为示例编写伪代码。给我们更多关于脚本语言的信息,也许还有条件。

伪代码示例:

# Defining a timeout of 1 sec, so checking the condition every second
timeout = 1

# Running in background infinitely
while true do
  # Let's check the condition
  if condition then
    # I got work to do
    ...
  else
    # Let's wait a specified timeout, not to block the system
    sleep timeout
  endif
endwhile

带有输入代码的 sh 示例

#!/bin/sh
PATH=/bin:/usr/bin:/sbin:/usr/sbin

# Defining a timeout of 1 hour
timeout=3600

while true
do
  case 'df /tmp' in
    " "[5-9]?%" ") rm -f /tmp/af.*
      ;;
    *)
      sleep $timeout
      ;;
  esac
done

然后,您可以使用“nohup”从 shell 运行此脚本:

nohup yourscript &
于 2012-05-04T12:07:03.727 回答