加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Bash – 一个“和”操作符为“如果”statment

发布时间:2020-12-15 16:30:28 所属栏目:安全 来源:网络整理
导读:我试图创建一个简单的bash脚本来检查网站是否由于某种原因“和”运算符不工作: #!/usr/bin/env bashWEBSITE=domain.comSUBJECT="$WEBSITE DOWN!"EMAILID="an@email.com"STATUS=$(curl -sI $WEBSITE | awk '/HTTP/1.1/ { print $2 }')STRING=$(curl -s $WEB
我试图创建一个简单的bash脚本来检查网站是否由于某种原因“和”运算符不工作:
#!/usr/bin/env bash

WEBSITE=domain.com
SUBJECT="$WEBSITE DOWN!"
EMAILID="an@email.com"
STATUS=$(curl -sI $WEBSITE | awk '/HTTP/1.1/ { print $2 }')
STRING=$(curl -s $WEBSITE | grep -o "string_to_search")
VALUE="string_to_search"

if [ $STATUS -ne 200 ] && [[ "$STRING" != "$VALUE" ]]; then
        echo "Website: $WEBSITE is down,status code: '$STATUS' - $(date)" | mail -s "$SUBJECT" $EMAILID
fi

“-a”操作符也不工作:

if [ $STATUS -ne 200 ] -a [[ "$STRING" != "$VALUE" ]]

你也可以请指教什么时候使用:

>单和双方括号
>括号

你应该工作,除非$ STATUS为空。它可能会更好地做:
if ! [ "$STATUS" -eq 200 ] 2> /dev/null && [ "$STRING" != "$VALUE" ]; then

要么

if [ "$STATUS" != 200 ] && [ "$STRING" != "$VALUE" ]; then

很难说,因为你没有向我们显示你的脚本出了什么问题。

个人意见:不要使用[[。它不能移植到不同的shell。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读