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。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |