仓酷云
标题:
来一发简便的Bash编程技能
[打印本页]
作者:
只想知道
时间:
2015-1-14 20:17
标题:
来一发简便的Bash编程技能
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!
[size=1.4em]上面这几条是我本人在写shell代码的时分,对照喜好的几种写法,举一反三。
1.反省下令实行是不是乐成
[size=1.4em]第一种写法,对照罕见:
echoabcdee|grep-qabcdif[$?-eq0];thenecho"Found"elseecho"Notfound"fi
复制代码
[size=1.4em]简便的写法:
ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi
复制代码
[size=1.4em]固然你也能够不要if/else,不外如许可读性对照差:
[SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found
复制代码
2.将尺度输入与尺度毛病输入重定向到/dev/null
[size=1.4em]第一种写法,对照罕见:
grep"abc"test.txt1>/dev/null2>&1
复制代码
[size=1.4em]罕见的毛病写法:
grep"abc"test.txt2>&11>/dev/null
复制代码
[size=1.4em]简便的写法:
grep"abc"test.txt&>/dev/null
复制代码
3.awk的利用
[size=1.4em]举一个实践的例子,猎取XenDomU的id。
[size=1.4em]罕见的写法:
sudoxmli|grepvm_name|awk{print$2}
复制代码
[size=1.4em]简便的写法:
sudoxmli|awk/vm_name/{print$2}
复制代码
4.将一个文本的一切行用逗号毗连起来
[size=1.4em]假定文件内容以下所示:
[SatNov0310:04PM][kodango@devops]~/workspace$cat/tmp/test.txt123
复制代码
[size=1.4em]利用Sed下令:
[SatNov0310:14PM][kodango@devops]~/workspace$sed:a;$!N;s/
/,/;ta/tmp/test.txt1,2,3
复制代码
[size=1.4em]简便的写法:
ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi0
复制代码
5.过滤反复行
[size=1.4em]假定文件内容以下所示:
ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi1
复制代码
[size=1.4em]经常使用的***:
ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi2
复制代码
[size=1.4em]复杂的写法:
ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi3
复制代码
6.grep查找单词
[size=1.4em]假定一个文本的每行是一个ip地点,比方
ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi4
复制代码
[size=1.4em]利用grep查找是不是包含10.0.0.1这个ip地点。罕见的写法:
ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi5
复制代码
[size=1.4em]复杂的***(实在这***不见得复杂,只是为了申明-w这个参数仍是很有效的)
ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi6
复制代码
[size=1.4em]特地grep的-n/-H/-v/-f/-c这几参数都很有效。
7.一时设置情况变量
[size=1.4em]罕见的写法:
ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi7
复制代码
[size=1.4em]简便的写法:
ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi8
复制代码
[size=1.4em]在下令之前加上情况变动的设置,只是一时改动以后实行下令的情况。
8.$1,$2...等地位参数的利用
[size=1.4em]假定只想利用$2,$3..这几个参数,罕见的做法是:
ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi9
复制代码
[size=1.4em]为何不如许写呢?
[SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found0
复制代码
9.退而求其次的写法
[size=1.4em]信任人人会有这类需求,当一个参数值没有供应时,可使用默许值。罕见的写法是:
[SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found1
复制代码
[size=1.4em]简便的写法是如许的:
[SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found2
复制代码
10.bash特别参数--的用法
[size=1.4em]假定要用grep查找字符串中是不是包括-i,我们会如许实验:
[SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found3
复制代码
[size=1.4em]简便的***是:
[SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found4
复制代码
[size=1.4em]bash中--前面的参数不会被看成选项剖析。
11.函数的前往值默许是最初一行语句的前往值
[SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found5
复制代码
[size=1.4em]不要多此一举再在前面加一行return$?了。
12.将printf格局化的了局赋值给变量
[size=1.4em]比方将数字转换成其十六进制情势,罕见的写法是:
[SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found6
复制代码
[size=1.4em]复杂的写法是:
[code]
[
Sat
作者:
变相怪杰
时间:
2015-1-15 16:20
标题:
来一发简便的Bash编程技能
幸福吧你~因为对牛弹琴并不可怕,可怕的是一群牛每天对着你弹琴!
作者:
蒙在股里
时间:
2015-1-24 15:39
现在的linux操作系统如redhat,难点,红旗等,都是用这么一个内核,加上其它的用程序(包括X)构成的。
作者:
再见西城
时间:
2015-2-2 11:00
学习Linux,应该怎样学,主要学些什么,一位Linux热心学习者,一段学习Linux的风云经验,历时十二个小时的思考总结,近十位网络Linux学习者权威肯定,为您学习Linux指明方向。
作者:
小女巫
时间:
2015-2-7 19:27
如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。 Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人。
作者:
精灵巫婆
时间:
2015-2-23 13:18
我想即使Linux高手也很难快速准确精练的回答你。
作者:
乐观
时间:
2015-3-7 11:10
笔者五分钟后就给出了解决方法: “首先备份原文件到其他目录,然后删掉/usr/local/unispim/unispimsp.ksc,编辑 /usr/local/unispim/unispimsp.ini,最后重启动计算机
作者:
第二个灵魂
时间:
2015-3-15 06:46
下面看看一个让人无法回答的问题:“救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、Sendmail服务器,谢谢”这样的问题。
作者:
仓酷云
时间:
2015-3-21 22:48
在系统检测不到与Linux兼容的显卡,那么此次安装就可能不支持图形化界面安装,而只能用文本模式安装等等。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2