仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 717|回复: 8
打印 上一主题 下一主题

[shell编程] 来一发简便的Bash编程技能

[复制链接]
只想知道 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:17:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们![size=1.4em]上面这几条是我本人在写shell代码的时分,对照喜好的几种写法,举一反三。
1.反省下令实行是不是乐成

[size=1.4em]第一种写法,对照罕见:
  1. echoabcdee|grep-qabcdif[$?-eq0];thenecho"Found"elseecho"Notfound"fi
复制代码
[size=1.4em]简便的写法:
  1. ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi
复制代码
[size=1.4em]固然你也能够不要if/else,不外如许可读性对照差:
  1. [SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found
复制代码
2.将尺度输入与尺度毛病输入重定向到/dev/null

[size=1.4em]第一种写法,对照罕见:
  1. grep"abc"test.txt1>/dev/null2>&1
复制代码
[size=1.4em]罕见的毛病写法:
  1. grep"abc"test.txt2>&11>/dev/null
复制代码
[size=1.4em]简便的写法:
  1. grep"abc"test.txt&>/dev/null
复制代码
3.awk的利用

[size=1.4em]举一个实践的例子,猎取XenDomU的id。
[size=1.4em]罕见的写法:
  1. sudoxmli|grepvm_name|awk{print$2}
复制代码
[size=1.4em]简便的写法:
  1. sudoxmli|awk/vm_name/{print$2}
复制代码
4.将一个文本的一切行用逗号毗连起来

[size=1.4em]假定文件内容以下所示:
  1. [SatNov0310:04PM][kodango@devops]~/workspace$cat/tmp/test.txt123
复制代码
[size=1.4em]利用Sed下令:
  1. [SatNov0310:14PM][kodango@devops]~/workspace$sed:a;$!N;s/
  2. /,/;ta/tmp/test.txt1,2,3
复制代码
[size=1.4em]简便的写法:
  1. ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi0
复制代码
5.过滤反复行

[size=1.4em]假定文件内容以下所示:
  1. ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi1
复制代码
[size=1.4em]经常使用的***:
  1. ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi2
复制代码
[size=1.4em]复杂的写法:
  1. ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi3
复制代码
6.grep查找单词

[size=1.4em]假定一个文本的每行是一个ip地点,比方
  1. ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi4
复制代码
[size=1.4em]利用grep查找是不是包含10.0.0.1这个ip地点。罕见的写法:
  1. ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi5
复制代码
[size=1.4em]复杂的***(实在这***不见得复杂,只是为了申明-w这个参数仍是很有效的)
  1. ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi6
复制代码
[size=1.4em]特地grep的-n/-H/-v/-f/-c这几参数都很有效。
7.一时设置情况变量

[size=1.4em]罕见的写法:
  1. ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi7
复制代码
[size=1.4em]简便的写法:
  1. ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi8
复制代码
[size=1.4em]在下令之前加上情况变动的设置,只是一时改动以后实行下令的情况。
8.$1,$2...等地位参数的利用

[size=1.4em]假定只想利用$2,$3..这几个参数,罕见的做法是:
  1. ifechoabcdee|grep-qabc;thenecho"Found"elseecho"Notfound"fi9
复制代码
[size=1.4em]为何不如许写呢?
  1. [SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found0
复制代码
9.退而求其次的写法

[size=1.4em]信任人人会有这类需求,当一个参数值没有供应时,可使用默许值。罕见的写法是:
  1. [SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found1
复制代码
[size=1.4em]简便的写法是如许的:
  1. [SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found2
复制代码
10.bash特别参数--的用法

[size=1.4em]假定要用grep查找字符串中是不是包括-i,我们会如许实验:
  1. [SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found3
复制代码
[size=1.4em]简便的***是:
  1. [SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found4
复制代码
[size=1.4em]bash中--前面的参数不会被看成选项剖析。
11.函数的前往值默许是最初一行语句的前往值
  1. [SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found5
复制代码
[size=1.4em]不要多此一举再在前面加一行return$?了。
12.将printf格局化的了局赋值给变量

[size=1.4em]比方将数字转换成其十六进制情势,罕见的写法是:
  1. [SunNov0405:58AM][kodango@devops]~/workspace$echoabcdee|grep-qabc&&echo"Found"||echo"Notfound"Found6
复制代码
[size=1.4em]复杂的写法是:
[code][Sat
变相怪杰 该用户已被删除
沙发
发表于 2015-1-15 16:20:46 | 只看该作者

来一发简便的Bash编程技能

幸福吧你~因为对牛弹琴并不可怕,可怕的是一群牛每天对着你弹琴!
蒙在股里 该用户已被删除
板凳
发表于 2015-1-24 15:39:45 | 只看该作者
现在的linux操作系统如redhat,难点,红旗等,都是用这么一个内核,加上其它的用程序(包括X)构成的。
再见西城 该用户已被删除
地板
发表于 2015-2-2 11:00:30 | 只看该作者
学习Linux,应该怎样学,主要学些什么,一位Linux热心学习者,一段学习Linux的风云经验,历时十二个小时的思考总结,近十位网络Linux学习者权威肯定,为您学习Linux指明方向。
小女巫 该用户已被删除
5#
发表于 2015-2-7 19:27:26 | 只看该作者
如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。 Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人。
精灵巫婆 该用户已被删除
6#
发表于 2015-2-23 13:18:48 | 只看该作者
我想即使Linux高手也很难快速准确精练的回答你。
乐观 该用户已被删除
7#
发表于 2015-3-7 11:10:31 | 只看该作者
笔者五分钟后就给出了解决方法: “首先备份原文件到其他目录,然后删掉/usr/local/unispim/unispimsp.ksc,编辑 /usr/local/unispim/unispimsp.ini,最后重启动计算机
第二个灵魂 该用户已被删除
8#
发表于 2015-3-15 06:46:30 | 只看该作者
下面看看一个让人无法回答的问题:“救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、Sendmail服务器,谢谢”这样的问题。
9#
发表于 2015-3-21 22:48:29 | 只看该作者
在系统检测不到与Linux兼容的显卡,那么此次安装就可能不支持图形化界面安装,而只能用文本模式安装等等。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-16 23:45

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表