此篇博客是学习红帽系统阶段性的知识总结和梳理,比较初级,大牛级的就不用看了,欢迎大家能够提出宝贵的意见,在红帽的学习上能够共同进步。

脚本编程是我们学习红帽时必须要掌握的一个知识,为什么这么说呢,如果我们我们不学习脚本能不能管理一个主机,当然可以,问题是脚本可以帮助我们实现系统管理的自动化,举个例子来讲如果我们第二天一早想要知道我们的服务器昨晚都被那些人登陆或尝试登陆过,如果我们不用脚本,我们就需要使用命令一条条的观看,很费时间,反之如果能过写一个脚本,那么我们就可以很快知道结果,这样就实现了事务管理的自动化.

 在正式介绍脚本的具体的技术之前,我们对整体的一下相关的知识.编程分为静态语言和动态语言,静态语言包括C,C++,动态语言就是我们说的脚本语言,shell,phthon ,静态年语言就是要对源代码进行编译,链接,最后转换成二进制代码才能执行,而脚本就是一条条命令的执行不需要进行编译.两种语言使用的场合不同,静态语言主要用于编写系统软件,而脚本则主要是用于系统管理方面.好了,对脚本有了一个大体的了解之后我们进入正式的具体的知识点的学习.我们主要以bash为例进行学习.

 

脚本编程实际上就是把相关的命令,以及grep,sed,awk,正则表达式,使用脚本编程语言所提供的控制语句根据生产环境当中的实际业务需求而进行组合的过程.我们学习脚本首先要学的就是这些具体的知识点.

 

if 控制语句的学习

 

If语句有单向分支,双向分支,多向分支

 

单项分支的if语句:

格式

If  表达式

then 

    语句

fi;

 

说明

如果把几个语句放在一行,则中间一定要用分号给开,否则会显示语法错误.

 

实例:

if   [ -e /etc/passwd ]     #先判断/etc/passwd 是否存在

then

     cp /etc/passwd ./    #如果存在拷贝到当前目录

fi;

 

 

双分支的if语句

格式

if   expression

then 

     command1

     command2

     ...

else

     command1

     command2

     ..

fi;

 

实例:

if   [-e /tpm ]     #先判断/tpm目录是否存在

then

cd /tpm           #存在的话,即切换目录到该目录

else

   ls /etc/passwd|grep /<^r..t/> /etc/passwd    #这一个语句是说明,如果/tmp目录不存在,就执行这个语句。这是一个特定字符串的查找语句。

fi;

 

 

下面我们慢慢的加大难度

多分支的if语句:

格式:

if  [ expression1 ]

then

command1

command2

...

 

elif  [ expression2 ]

then

command1

command2

...

 

elif  [ expression3 ]

then

command1

command2

...

 

else

command1

command2

...

 

fi;

 

 

为了更易于理解上面的语句,我来解释一下,就是如果第一个条件不满足的话,可以进行第二个条件的判断,如果第二个条件也不满足的话可以进行第三个条件的判断,以此类推。

 

下面我来给出一个具体的例子,以利于更加清晰的理解多分分支的if条件语句。

 

if  [ 3 ge 5 ]     #如果3大于等于5的话

then

    sleep 5      #睡眠5

 

elif  [ 8 le 6 ]    #如果8小于等于6的话

    chown  -R redhat redhat /tmp/test   #改变/tmp/test 下的属主属组都为redhat这个

#用户

 

elif  [ 10 gt 12 ]    #如果10大于等于12的话

    logout        #推出系统

 

else cd /etc/  #前边的条件都不成立,则执行这条切换目录到cd /etc目录下

 

fi;

 

以上就是对if语句的总结,下一篇文章我将对另一个条件语句case进行总结.