JSON

shell使用技巧

字号+ 作者:H5之家 来源:H5之家 2017-05-22 17:00 我要评论( )

凡是传递给server端的文本数据,如果过长必须要截取,例如截取前480个字符 echo ${lines:0:480} 若有下载文件步骤,须判断文件是否下载成功 length1=${pkg1_file[@]} if [ $length1 -eq 0 ]; then echo 下发安装包失败 exit 1 fi 若有解压安装包步骤,需判断

凡是传递给server端的文本数据,如果过长必须要截取,例如截取前480个字符

echo ${lines:0:480}

若有下载文件步骤,须判断文件是否下载成功

length1=${pkg1_file[@]}

if [ $length1 -eq 0 ]; then

     echo "下发安装包失败"

     exit 1

fi

若有解压安装包步骤,需判断是否解压成功

su - oracle -c "cd $pkg_path; unzip -o $pkg1_file"

if [ $? -ne 0 ]; then

     echo "解压安装包出错"

    echo "中断操作…"

    exit 1

fi

shell输出内容拼装成json格式时,需要去除每次插入的字符串后面的换行

echo ',{"code":"add_results","alert": 1,"value":"'$error'","result": "ok"}'| tr -d ["\n"]>>$reports

如果需要保存error数据里的换行:

echo ',{"code":"add_results","alert": 1,"value":"'| tr -d ["\n"]>>$reports

echo $error>>$reports

echo '","result": "ok"}'| tr -d ["\n"]>>$reports

若需要将shell以json样式输出的文本转json格式字符串供python或server端使用,需要进行转换

import os

import os

import json

import sys

import socket

if not os.path.exists(reports) or reports in ('',None) :

    print '巡检报告不存在'

    sys.exit(1)

with open(reports,'r') as f:

    lines=f.read().strip(',').strip('\n').replace('\n','\\n').replace('\t','\\t')

name=socket.gethostname()

results=[]

results.append(name)

wlines=[i for i in lines.split('},')]

for line in wlines[:-1]:

    results.append(json.loads(line+'}'))

if len(wlines)==1:

    #print wlines[0]

    results.append(json.loads(wlines[0]))

else:

    results.append(json.loads(wlines[-1]))

 

results=json.dumps(results)

#print results

由于server端下发的数值全部为字符串,因此进行与基值的数据比较时,可以先转换成字符串,本例中基值为db_use_base_value

typeset C=$(echo ${open_status} "$db_use_base_value" | awk '{print $1-$2}')

types=`echo ${C:0:1}`

if [ "$types" != "-" ]

then

error=$error$table_name"---"$open_status"%,"

fi

let "line_num=$line_num+1"

done

fi

除法取两位小数

use_size=$((total_size-free_size))

use_percent=$(echo "scale=2; $use_size*100/$total_size" | bc)

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • PHP 正则表达式使用技巧

    PHP 正则表达式使用技巧

    2017-04-22 13:00

  • Android之屏幕切换使用技巧

    Android之屏幕切换使用技巧

    2017-04-22 11:05

  • CXGrid的使用技巧

    CXGrid的使用技巧

    2017-04-21 15:02

  • Linux Shell格式化Json

    Linux Shell格式化Json

    2017-03-28 15:01

网友点评
: