在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

Shell工具jsondiff.sh怎么用

136次阅读
没有评论

共计 1886 个字符,预计需要花费 5 分钟才能阅读完成。

今天就跟大家聊聊有关 Shell 工具 jsondiff.sh 怎么用,可能很多人都不太了解,为了让大家更加了解,丸趣 TV 小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

我最近忙着重构一个历史项目,不过由于客观条件所限,没有测试用例可用,以至于我不得不通过人肉对比新旧服务器的结果集是否一致来判断对错。既然说懒惰是程序员的美德,所以我想还是写一个工具吧,加之结果集为 JSON,于是便有了 jsondiff.sh。

逻辑很简单,无非就是通过 curl 在不同的服务器上取得结果集,然后 diff 即可,不过这里有几点需要注意的地方:首先,JSON 就一行,直接 diff 会失去意义;其次,JSON 中汉字会被编码,不利于查看;另外,JSON 中字段顺序是无所谓的,所以 diff 前 *** 排序。说明一下,在格式化 JSON 数据的时候,我没有用 Bash,而是用的 PHP:

#!/bin/bash RM=/bin/rm PHP=/usr/bin/php CURL=/usr/bin/curl DIFF=/usr/bin/diff VIMDIFF=/usr/bin/vimdiff COLORDIFF=/usr/bin/colordiff usage() { echo  Usage: $0 --uri= URI  --old= IP  --new= IP  } format() { $PHP -R   function ksort_recursive( $array) { if (!is_array($array)) { return; } ksort($array); foreach (array_keys($array) as $key) { ksort_recursive($array[$key]); } } $options = JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE; $array = json_decode($argn, true); ksort_recursive($array); echo json_encode($array, $options);   } request() { $CURL -s -H  Host: $1   http://$2$3  } eval set -- $( getopt -q -o  h  -l  host:,uri:,old:,new:,vim,help  --  $@  ) while true; do case  $1  in --host) HOST=$2; shift 2;; --uri) URI=$2; shift 2;; --old) OLD=$2; shift 2;; --new) NEW=$2; shift 2;; --vim) VIM= Y  shift 1;; -h|--help) usage; exit 0;; --) break;; esac done if [[ -z  $URI  || -z  $OLD  || -z  $NEW  ]]; then usage exit 1 fi if [[ -z  $HOST  ]]; then HOST= www.foobar.com  fi OLD_FILE=$(mktemp) NEW_FILE=$(mktemp) request  $HOST   $OLD   $URI  | format   $OLD_FILE request  $HOST   $NEW   $URI  | format   $NEW_FILE if [[  $VIM  ==  Y  ]]; then $VIMDIFF $OLD_FILE $NEW_FILE elif [[ -x  $COLORDIFF  ]]; then $COLORDIFF -u $OLD_FILE $NEW_FILE else $DIFF -u $OLD_FILE $NEW_FILE fi $RM -f $OLD_FILE $RM -f $NEW_FILE

其中「getopt」的用法值得注意一下,相关参考资料如下:

Getopt in Bash Bash: Preserving Whitespace Using set and eval

虽然我的 Shell 水平有限,但是我尽可能写得易用:在 diff 的时候,允许使用多种工具,缺省情况下会优先使用「colordiff」,需要的话还可以激活「vimdiff」。

看完上述内容,你们对 Shell 工具 jsondiff.sh 怎么用有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注丸趣 TV 行业资讯频道,感谢大家的支持。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计1886字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 小蜜被两老头吸奶头在线观看 | 中文字幕精品亚洲无线码二区 | 四虎地址 | 日韩精品亚洲人成在线观看 | 亚洲欧美综合精品成人网站 | 国产精品98福利小视频 | 国产精品熟女视频一区二区 | 免费看男阳茎进女阳道动态图 | 91精品免费久久久久久久久 | 国产熟妇乱xxxxx大屁股网 | 激情爱爱视频 | 久草天堂 | 亚洲国产最大av | 亚洲国产第一区二区三区 | 国产欧美中文字幕 | 欧美成人性色生活片免费在线观看 | 福利一区在线视频 | 亚洲精品自偷自拍无码 | 粗大的内捧猛烈进出少妇 | 四虎网站在线观看 | va在线视频 | 国产97色在线 | 免费 | 国产日韩欧美精品 | 亚洲精品美女久久久aaa | 一区二区 在线 | 中国 | 亚洲欧美视频在线 | 亚洲综合在线一区二区三区 | 成人免费xxxxx在线观看 | 人妻少妇精品无码专区 | 99国产精品高清一区二区二区 | 欧美日韩不卡码一区二区三区 | 国内精品伊人久久久久影院对白 | 求毛片网站 | 亚洲天堂视频在线免费观看 | 91大片淫黄大片.在线天堂 | 99久久99热久久精品免费看 | 免费黄色视屏网站 | 国产网站黄色 | 麻豆精品久久久 | 国模欢欢炮交啪啪150 | 日本高清2019免费视频 |