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

Shell工具jsondiff.sh怎么用

151次阅读
没有评论

共计 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字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 国产一区二区精品久久 | 亚洲精品图| 国产写真福利视频在线 | 欧美一区二区久久精品 | 国产伦精品一区二区三区免.费 | 无码精品国产va在线观看 | 日产精品卡2卡三卡乱码网站 | 久碰人妻人妻人妻人妻人掠 | 黄色免费一级播放片 | 亚洲精品国产综合99久久一区 | 成人做爰视频www | 成年人视频免费在线播放 | 成人特级毛片69免费观看 | 性欧美老人牲交xxxxx视频 | 午夜色综合 | 久夜色精品国产一区二区三区 | 亚洲欧美精品天堂久久综合一区 | 天堂网www资源在线 天堂网www最新版资源在线 | 阿v视频免费在线观看 | 一本大道东京热无码 | 国产黄频在线观看 | 中文字幕禁忌乱偷在线 | 看全色黄大色黄大片 视频 看全色黄大色黄大片毛片 看全色黄大色黄大片色黄看的 | 色婷婷狠狠五月综合天色拍 | 亚洲成在人线久久综合 | 中文字日产幕乱五区 | 国产精品亚洲欧美大片在线观看 | 在线欧美69v免费观看视频 | 亚洲精品国产精品乱码不卞 | 国产精品免费观看视频播放 | 高潮射精日本韩国在线播放 | 国产成人无码精品久久久露脸 | 亚洲老妈激情一区二区三区 | 东北少妇不戴套对白第一次 | 亚洲人成伊人成综合网久久 | 少妇人妻精品一区二区 | 人成精品视频三区二区一区 | 米奇777超碰欧美日韩亚洲 | 男人的天堂亚洲 | 青青草原亚洲 | 日日干夜|