|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
使用gcc或g++进行编译,使用gdb进行调试;
上面这几条是我本人在写shell代码的时分,对照喜好的几种写法,举一反三。
1)反省命令实行是不是乐成
第一种写法,对照罕见:- echoabcdee|grep-qabcdif[$?-eq0];thenecho"Found"elseecho"Notfound"fi
复制代码 简便的写法:- ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi
复制代码 固然你也能够不要if/else,不外如许可读性对照差:- [SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found
复制代码 2)将尺度输入与尺度毛病输入重定向到/dev/null
第一种写法,对照罕见:- grep"abc"test.txt1>/dev/null2>&1
复制代码 罕见的毛病写法:- grep"abc"test.txt2>&11>/dev/null
复制代码 简便的写法:- grep"abc"test.txt&>/dev/null
复制代码 3)awk的利用
举一个实践的例子,猎取XenDomU的id。
罕见的写法:- sudoxmli|grepvm_name|awk{print$2}
复制代码 简便的写法:- sudoxmli|awk/vm_name/{print$2}
复制代码 4)将一个文本的一切行用逗号毗连起来
假定文件内容以下所示:- [SatNov0310:04PM][kodango@devops]~/workspace$cat/tmp/test.txt123
复制代码 利用Sed命令:- [SatNov0310:14PM][kodango@devops]~/workspace$sed:a;$!N;s/
- /,/;ta/tmp/test.txt1,2,3
复制代码 简便的写法:- ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi0
复制代码 5)过滤反复行
假定文件内容以下所示:- ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi1
复制代码 经常使用的办法:- ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi2
复制代码 复杂的写法:- ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi3
复制代码 6)grep查找单词
假定一个文本的每行是一个ip地点,比方- ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi4
复制代码 利用grep查找是不是包含10.0.0.1这个ip地点。罕见的写法:- ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi5
复制代码 复杂的办法(实在这办法不见得复杂,只是为了申明-w这个参数仍是很有效的)- ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi6
复制代码 特地grep的-n/-H/-v/-f/-c这几参数都很有效。
7)一时设置情况变量
罕见的写法:- ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi7
复制代码 简便的写法:- ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi8
复制代码 在命令之前加上情况变动的设置,只是一时改动以后实行命令的情况。
8)$1,$2…等地位参数的利用
假定只想利用$2,$3..这几个参数,罕见的做法是:- ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi9
复制代码 为何不如许写呢?- [SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found0
复制代码 9)退而求其次的写法
信任人人会有这类需求,当一个参数值没有供应时,可使用默许值。罕见的写法是:- [SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found1
复制代码 简便的写法是如许的:- [SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found2
复制代码 10)bash特别参数–的用法
假定要用grep查找字符串中是不是包括-i,我们会如许实验:- [SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found3
复制代码 简便的办法是:- [SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found4
复制代码 bash中–前面的参数不会被看成选项剖析。
11)函数的前往值默许是最初一行语句的前往值- [SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found5
复制代码 不要多此一举再在前面加一行return$?了。
12)将printf格局化的了局赋值给变量
比方将数字转换成其十六进制情势,罕见的写法是:- [SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found6
复制代码 复杂的写法是:- [SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found7
复制代码 看看printf的help- [SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found8
复制代码 13)打印文件行
打印文件的第一行:- [SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found9
复制代码 打印文件的第2行:- grep"abc"test.txt1>/dev/null2>&10
复制代码 打印文件的第2到5行:- grep"abc"test.txt1>/dev/null2>&11
复制代码 打印文件的第2行始(包含第2行在内)5行的内容:- grep"abc"test.txt1>/dev/null2>&12
复制代码 打印倒数第二行:- grep"abc"test.txt1>/dev/null2>&13
复制代码 14)善用let大概(())命令做算术运算
怎样对一个数字做++运算,大概你会如许用:- grep"abc"test.txt1>/dev/null2>&14
复制代码 为什么不必你熟习的:- grep"abc"test.txt1>/dev/null2>&15
复制代码 15)猎取软毗连指定的实在文件名
假如你不晓得,你大概会如许猎取:- grep"abc"test.txt1>/dev/null2>&16
复制代码 假如你晓得有一个叫readlink的命令,那末:- grep"abc"test.txt1>/dev/null2>&17
复制代码 16)猎取一个字符的ASCII码- grep"abc"test.txt1>/dev/null2>&18
复制代码 17)清空一个文件
罕见的用法:- grep"abc"test.txt1>/dev/null2>&19
复制代码 复杂的写法:- grep"abc"test.txt2>&11>/dev/null0
复制代码 18)不要健忘有heredocument |
|