Linux 确定字符串是否为“0”的Bash脚本;a「;与“相同”;x";“那就按时间做吧”;“是”;
希望这不是转载 我正在尝试在脚本中插入一行,以确定字符串文件的值是否与发送邮件的时间“x”小时(1-2小时)相同。这是我的逻辑Linux 确定字符串是否为“0”的Bash脚本;a「;与“相同”;x";“那就按时间做吧”;“是”;,linux,bash,shell,aix,Linux,Bash,Shell,Aix,希望这不是转载 我正在尝试在脚本中插入一行,以确定字符串文件的值是否与发送邮件的时间“x”小时(1-2小时)相同。这是我的逻辑 if [[ "${LAST_VALUE}" -eq 1 for "x" hours ]]; then mails -s ..... else echo "The value has been changed" fi 问题是idk如何为bash编写此代码。 很多Thx家伙 从您的评论中,我推断您可以通
if [[ "${LAST_VALUE}" -eq 1 for "x" hours ]]; then
mails -s .....
else
echo "The value has been changed"
fi
问题是idk如何为bash编写此代码。
很多Thx家伙 从您的评论中,我推断您可以通过一些数据库查询或一些外部命令来提取
LAST\u value
的值。我们把它称为db\u query
。我的建议是使用一个包含此值及其更改时间的外部文件
假设我们有一个文件:/tmp/dbquery.txt
,其中包含一行,如:
key epoch value
然后我们可以有以下脚本:
#!/usr/bin/env bash
# read old value
read -r key old_epoch old_value < /tmp/dbquery.txt
# query and store new values
last_value="$(dbquery)"
last_epoch="$(date "+%s")"
if [[ "${last_value}" == "${old_value}" ]]; then
echo $key $old_epoch $old_value > /tmp/dbquery.txt
else
echo $key $last_epoch $last_value > /tmp/dbquery.txt
fi
if [[ "${last_value}" == 1 ]] && (( last_epoch - old_epoch > 3600 )); then
do stuff
fi
#/usr/bin/env bash
#读取旧值
读取-r键旧值
#查询并存储新值
last_value=“$(dbquery)”
last_epoch=“$(日期“+%s”)”
如果[[“${last_value}”==“${old_value}”];然后
echo$key$old\u epoch$old\u value>/tmp/dbquery.txt
其他的
echo$key$last\u epoch$last\u value>/tmp/dbquery.txt
fi
如果[[“${last_value}”==1]&&((last_epoch-old_epoch>3600));然后
做事
fi
您的系统是否处于某种循环中?或者这个脚本是如何运行的?它是在cronjob中不断重新运行,还是在循环中不断运行,还是脚本本身包含循环?另外,您从何处获得分配给最后一个值的值
?它在cronjob中运行。它从我的数据库中获取值,并将其插入到一些输出中。问题是我如何检查我的${LAST_VALUE}”(这是一个输出),如果它是-eq到“1”的值大于“x”,那么就执行“y”