shell脚本如何获取状态码返回值,如ok或error

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本如何获取状态码返回值,如ok或error相关的知识,希望对你有一定的参考价值。

使用shell脚本获取"code":"ok","resultXml":"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<result>\n... 里的ok或error

"code":"ok","resultXml":"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<result>\n 这个值已被赋值给RESPONSE

现在使用echo "$RESPONSE" | awk 'printf $1'获取的不对,求大神赐教
code的值是个变量,可能的值也许不止ok或error

楼上说的貌似没错,我没去执行看具体报什么错。

用awk是可以的,你需要用-F指定分隔符,然后再输出第几个串,楼上用的双引号作为分隔符,然后输出第四个串,应该是没问题的。
或者你也可以用其他语言,比如php,json_decode函数将这个穿转成数组,然后输入code的值,更加直观。
参考技术A echo "$RESPONSE" | awk -F\" 'print $4'追问

运行了下,没有打印出来

追答

root@localhost:~/xly# cat 1
RESPONSE='"code":"ok","resultXml":"\n\n'
echo $RESPONSE
echo "$RESPONSE" | awk -F\" 'print $4'
root@localhost:~/xly# sh 1
"code":"ok","resultXml":"\n\n
ok

参考技术B #使用awk双引号分割,第4列即可
echo "$RESPONSE" | awk -F '"' 'print $4'

shell脚本:监控HTTP服务的状态(测试返回码)

#定义函数check_http: 

#使用curl命令检查http服务器的状态 #-m设置curl不管访问成功或失败,最大消耗的时间为5秒,5秒连接服务为相应则视为无法连接

#-s设置静默连接,不显示连接时的连接速度、时间消耗等信息 

#-o将curl下载的页面内容导出到/dev/null(默认会在屏幕显示页面内容) 

#-w设置curl命令需要显示的内容%{http_code},指定curl返回服务器的状态码


#!/bin/bash
#Author:丁丁历险(Jacob)
#设置变量,url为你需要检测的目标网站的网址(IP或域名)
url=http://192.168.4.5/index.html
 
#定义函数check_http:
#使用curl命令检查http服务器的状态
#-m设置curl不管访问成功或失败,最大消耗的时间为5秒,5秒连接服务为相应则视为无法连接
#-s设置静默连接,不显示连接时的连接速度、时间消耗等信息
#-o将curl下载的页面内容导出到/dev/null(默认会在屏幕显示页面内容)
#-w设置curl命令需要显示的内容%{http_code},指定curl返回服务器的状态码
check_http(){
status_code=$(curl -m 5 -s-o /dev/null -w %{http_code} $url)
}
 
while :
do
       check_http
       date=$(date +%Y%m%d-%H:%M:%S) 
#生成报警邮件的内容
       echo "当前时间为:$date
       $url服务器异常,状态码为${status_code}.
       请尽快排查异常." > /tmp/http$$.pid
       
#指定测试服务器状态的函数,并根据返回码决定是发送邮件报警还是将正常信息写入日志
       if [ $status_code -ne 200 ];then
              mail -s Warning root < /tmp/http$$.pid
       else
              echo "$url连接正常" >> /var/log/http.log
       fi
       sleep 5
done



本文出自 “丁丁历险” 博客,请务必保留此出处http://manual.blog.51cto.com/3300438/1977834

以上是关于shell脚本如何获取状态码返回值,如ok或error的主要内容,如果未能解决你的问题,请参考以下文章

如何在 shell 中获取测试命令返回码?

Shell脚本returnechoprintf

Linux Shell脚本编程-基础2

每天三分钟搞定linux shell脚本26 函数返回值

shell脚本:监控HTTP服务的状态(测试返回码)

check_nrpe 将返回码 1 视为 OK