透明 发表于 2015-1-18 11:21:17

Linux制作之一个Shell工具:jsondiff.sh仓酷云

在这里你会学到更多的知识,学习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论坛问一些问题,不过,其中大多数的问题都是很基的。

只想知道 发表于 2015-1-20 20:57:32

上课传授的不仅仅是知识,更重要的是一些道理,包括一些做人的道理,讲课时也抓住重点,循序渐进,让同学理解很快;更可贵的是不以你过去的成绩看问题.

乐观 发表于 2015-1-30 05:11:38

Windows有MS-DOS?方式,在该方式下通过输入DOS命令来操作电脑;Linux与Windows类似,也有命令方式,Linux?启动后如果不执行?X-WINDOWS,就会处于命令方式下,必须发命令才能操作电脑。?

爱飞 发表于 2015-2-6 07:28:46

随着Linux应用的扩展,出现了不少Linux社区。有一些非常优秀的社区往往是Linux高手的舞台,如果在探讨高级技巧的论坛张贴非常初级的问题经常会没有结果。

老尸 发表于 2015-2-7 01:36:17

选择交流平台,如QQ群,网站论坛等。

海妖 发表于 2015-2-7 21:30:50

随着实验课程的结束,理论课也该结束了,说实话教OS的这两位老师是我们遇到过的不错的老师(这话放这可能不太恰当).

飘灵儿 发表于 2015-2-7 23:44:35

工具书对于学习者而言是相当重要的。一本错误观念的工具书却会让新手整个误入歧途。目前国内关于Linux的书籍有很多不过精品的不多。

小魔女 发表于 2015-2-17 10:52:20

对Linux命令熟悉后,你可以开始搭建一个小的Linux网络,这是最好的实践方法。Linux是网络的代名词,Linux网络服务功能非常强大,不论是邮件服务器、Web服务器、DNS服务器等都非常完善。

灵魂腐蚀 发表于 2015-3-2 22:53:18

Linux是参照Unix思想设计的,理解掌握Linux必须按照Unix思维来进行。思想性的转变比暂时性的技术提高更有用,因为他能帮助你加快学习速度。

再现理想 发表于 2015-3-3 03:40:48

要增加自己Linux的技能,只有通过实践来实现了。所以,赶快找一部计算机,赶快安装一个Linux发行版本,然后进入精彩的Linux世界,相信对于你自己的Linux能力必然大有斩获。

简单生活 发表于 2015-3-11 09:05:13

其实老师让写心得我也没怎么找资料应付,自己想到什么就写些什么,所以不免有些凌乱;很少提到编程,因为那些在实验报告里已经说了,这里再写就多余了。

若天明 发表于 2015-3-18 01:58:40

我感觉linux的学习,学习编程~!~!就去学习C语言编程!!

精灵巫婆 发表于 2015-3-25 08:58:21

在系统检测不到与Linux兼容的显卡,那么此次安装就可能不支持图形化界面安装,而只能用文本模式安装等等。
页: [1]
查看完整版本: Linux制作之一个Shell工具:jsondiff.sh仓酷云