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,即为错误。
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了,期待下一节新的知识,加油!