首页 > 系统服务 > 详细

shell:基本语法

时间:2017-03-23 21:58:44      阅读:303      评论:0      收藏:0      [点我收藏+]

一、awk、变量、运算符、if多分支

awk:shell编辑器的一种文本处理工具/命令,同grep、sed一样均可解释正则。具体运用下面awk文本处理有详细说明。

 

变量:分为系统变量和临时变量。变量一般由字母,下划线_ 开头,其他部分由字母、下划线、数字组成。

 

运算符

1.算术运算符:加+   减-    乘*    除/      取余%

2.关系操作符:大于>    小于<     大于等于>=    小于等于<=    等于==    不等于!=    与&&     或||

3.赋值运算符:赋值=    +=:x=x+1等同于x+=1      *=:x=x*1等同于x*=1          /=:x=x/2等同于x/=2            %=:

4.shell计算器:$(())    expr      bc -l

5.测试操作

  

if多分支

if+条件,then+命令。elif+条件,then+命令。elif可以有0个或多个。else +命令。可一有0个或一个。fi 。

 

二、awk文本处理

1.打印uid在30~40范围内的用户名。

 cd /etc/passwd  #查看具体的信息数据

技术分享

 awk -F : ‘$3 >= 30 && $3 <= 40{print $1}‘ /etc/passwd    #$3: 以“:”为分隔符的第三段内容。

echo $?    #测试命令是否成功

技术分享

 

2.打印第5-10行的行号和用户名

awk -F : ‘NR>=5&&NR<=10 {print NR,$1}‘ /etc/passwd   #NR代表行号,$1 :以“:”为分隔符的第一段内容。

技术分享

 

3.打印奇数行用户名

awk -F : ‘NR%2==1 {print NR "----" $1}‘ /etc/passwd

技术分享

 

4.打印偶数行用户名

awk -F : ‘NR%2!=1 {print NR,"----", $1}‘ /etc/passwd

技术分享

 

5.打印字段数大于5的行的用户名

awk -F : ‘$1>=5 {print NR,$1}‘ /etc/passwd

技术分享

 

6.打印UID不等于GID的用户名

awk -F: ‘$3!=$4 {print NR,$1}‘ /etc/passwd    #UID在第三段,GID在第四段。

技术分享

 

7.打印没有指定shell的用户

awk -F: ‘$7!="/bin/bash" {print NR,$1}‘ /etc/passwd

 技术分享

 

 

三、shell脚本编写

1.自动部署、初始配置、并启动nginx反向代理服务

 vim a.sh   #编辑脚本文件   -ne #不等于0

技术分享

./a.sh     #执行a.sh

技术分享

 

技术分享

 

2.自动部署、初始配置、并启动三台web

 

 

3.监控脚本:监控每台机器的内存使用率>70%,则输出报警信息

 安装软件bc

技术分享

free   #查看内存使用参数,vim b.sh   #编辑脚本

 技术分享

技术分享

 

shell:基本语法

原文:http://www.cnblogs.com/xuyaping/p/6605779.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!