Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 确定字符串是否为“0”的Bash脚本;a「;与“相同”;x";“那就按时间做吧”;“是”;_Linux_Bash_Shell_Aix - Fatal编程技术网

Linux 确定字符串是否为“0”的Bash脚本;a「;与“相同”;x";“那就按时间做吧”;“是”;

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家伙 从您的评论中,我推断您可以通

希望这不是转载

我正在尝试在脚本中插入一行,以确定字符串文件的值是否与发送邮件的时间“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家伙

从您的评论中,我推断您可以通过一些数据库查询或一些外部命令来提取
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”