我试图检查一个数字是否与上次检查时的数字不同,在这种情况下,使用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
这对我来说似乎效率低下,如果可能,我想知道是否有更好的解决方案。
答案 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"