使用Linux脚本和Cron

时间:2017-12-04 14:30:59

标签: linux shell cron global-variables instance-variables

我试图检查一个数字是否与上次检查时的数字不同,在这种情况下,使用Linux脚本和cron每分钟检查一个数字。

例如:

newNum = getNum()

if oldNum != newNum: run some code

oldNum = newNum

(repeat every minute using crontab)

但我遇到的问题是脚本之间无法访问变量,并且使用源(例如source script.sh)再次运行脚本,因此获取最新版本,而不是一分钟之前的版本

我得到的最好的是运行第一个获取当前数字的脚本,然后休眠一分钟,然后运行第二个脚本,该脚本基本上是上面代码的前两行。

例如:

oldNum = getNum()

sleep 60

export oldNum

script2.sh 

这对我来说似乎效率低下,如果可能,我想知道是否有更好的解决方案。

1 个答案:

答案 0 :(得分:0)

您可以将以前的号码缓存在文件中:

number_cache=/path/to/cache_file

# read the previous number
oldNum=$(< "$number_cache" )
# acquire the new number
newNum=$(getNum)

if [[ "$oldNum" -eq "$newNum" ]]; then
    do_something
fi

# cache the new number
printf "%d\n" "$newNum" > "$number_cache"