|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在这里你会学到更多的知识,学习linux,更要学习一种geek的精神,python之禅中也说过:以总结分享为荣,以跪求其解为耻;
我比来忙侧重构一个汗青项目,不外因为客不雅情形所限,没有测试用例可用,以致于我不能不手动对照新旧代码的了局集是不是分歧来判别对错,其实让人末路火。
由于了局集格局为json,以是我便写了一个Shell工具:jsondiff.sh,源代码以下:- #!/bin/bashRM=/bin/rmPHP=/usr/bin/phpCURL=/usr/bin/curlDIFF=/usr/bin/diffVIMDIFF=/usr/bin/vimdiffCOLORDIFF=/usr/bin/colordiffusage(){echo"Usage:$0--uri=<URI>--old=<OLD>--new=<NEW>"}format(){$PHP-Rfunctionksort_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);echojson_encode($array,$options);}request(){$CURL-s-H"Host:$1""http://$2$3"}evalset--$(getopt-q-o"h"-l"host:,uri:,old:,new:,vim,help"--"$@")whiletrue;docase"$1"in--host)HOST=$2;shift2;;--uri)URI=$2;shift2;;--old)OLD=$2;shift2;;--new)NEW=$2;shift2;;--vim)VIM="Y";shift1;;-h|--help)usage;exit0;;--)break;;esacdoneif[[-z"$URI"||-z"$OLD"||-z"$NEW"]];thenusageexit1fiif[[-z"$HOST"]];thenHOST="www.foobar.com"fiOLD_FILE=$(mktemp)NEW_FILE=$(mktemp)request"$HOST""$OLD""$URI"|format>$OLD_FILErequest"$HOST""$NEW""$URI"|format>$NEW_FILEif[["$VIM"=="Y"]];then$VIMDIFF$OLD_FILE$NEW_FILEelif[[-x"$COLORDIFF"]];then$COLORDIFF-u$OLD_FILE$NEW_FILEelse$DIFF-u$OLD_FILE$NEW_FILEfi$RM-f$OLD_FILE$RM-f$NEW_FILE
复制代码 常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基的。 |
|