Redhat Linux的第五节网课 编写Shell脚本

shell脚本工作方式

交互式:用户每输入一条命令就立即执行 

批处理:由用户事先编写好一个完整的shell脚本,Shell会一次性执行脚本中的诸多命令。

shell脚本构成:1.脚本声明  #!/bin/bash 这个语句必须要有  2.脚本注释 #   多写的是对于功能的解释或者一些说明信息 3.脚本命令如:ls  /etc/passwd  pwd

编写一个最简单的shell脚本

 创建脚本 vim  haha.sh   脚本内容:#!/bin/bash     #For   example    #cd /etc   ls -a   在文件逐条写上三句话,就写成了一个最简单的shell脚本  

接收用户参数  

shell脚本在执行的时候,是做了两件事情:1.接受用户的参数 2.判断用户的参数

1.接受用户的参数

shell脚本语言内置了用于接收参数的变量,分别是:

$0   脚本的名称

$#  总共接收了几个参数   $* 接受到的参数分别是什么

$1,$3,$5 接受到的第一个,第三个,第五个参数分别是什么

$? 上一次脚本执行的返回结果,返回数值0,则为成立,返回数值1,即为错误。

Redhat Linux的第五节网课 编写Shell脚本Redhat Linux的第五节网课 编写Shell脚本

2.判断用户的参数

文件测试语句    格式为[ -e /etc/passwd ] 查看返回结果  echo $?   这个测试语句测试的是passwd文件是否存在,返回结果肯定是0,这个文件是存放系统用户密码的文件,默认存在。不过这个命令太过繁琐,这时可以用&&(与)符号将两条命令合并为一条;格式是:[ -e /etc/passwd ] && echo $? 但使用&&的前提是前面的测试语句必须成立,才能执行后面的,否则什么也不会输出。

|| (或)符号则表示或的意思 即前面失败,则执行后面  

!(非)符号是取反值

整数数值比较    因为<  >号在前面的章节里知晓为输入输出重定向符,所以系统将-eq 定义为是否等于  -gt  定义为是否大于 等等  具体的格式为 [ 10 -gt 10 ] echo $?   意思为10是否大于10 返回值是1 则不成立。

字符串比较运算符  格式为 [ -z $String ] echo $? 如果输出值为0,则在该shell中未使用该字符串做变量,反之,输出值为1,则说明有人已经使用该字符串设置变量

if条件测试语句

if条件语句分为单分支、双分支、多分支结构,单分支结构由if 、then、fi关键词组成,双分支由if、then、else、fi关键词组成,多分支由if、then、elif、else、fi关键词组成。

for条件循环语句

for循环是应对一次性要读取多个信息,并对信息进行逐一操作处理时使用,由for、in、do、done关键词组成脚本。

学习心得

通过这节课的学习,基本了解了脚本的含义,如何编写一个简单的脚本,再到一个个长长的脚本,然后再进行与系统的交互,在不断的更改shell脚本的过程中,体会系统工作的原理,感到十分有成就感,虽然没有深入学习过C语言,对于刘老师所讲的if和for条件语句还是可以理解的,虽然有一定的难度,但是我已经理解了,接下来就是自己多动手去练习,实践去进行掌握就ok了,期待下一节新的知识,加油!

Redhat Linux的第五节网课 编写Shell脚本

Redhat Linux的第五节网课 编写Shell脚本