Linux操作系统管理与应用 教学课件 作者 张亚新 第四章 Linux的系统管理之Shell脚本.ppt
文本预览下载声明
4.2 Shell脚本 ——初步认识和学习脚本编程 相关知识复习: 1、新建文本文件的方法有哪些? 2、修改文件的权限使用那个命令? 3、变量的使用: 新课引入: 请大家读一段程序: #!/bin/bash USER=“admin” echo “Enter username:” read U1 PASSWORD=“1234abcd” for((i=1;i=3;i++)) do echo “Enter password:” read P1 if test $P1 == $PASSWORD then echo “登录成功!” break else echo ”密码错误,请重试!” if ((i=3)) then echo “输入超过三次,请退出!” fi fi done 知识目标与能力目标: 知识目标: 熟练Shell 脚本的编写过程; 学习Shell结构化编程方法; 能力目标: 初步学会独立编写简单的Shell脚本程序,为以后的应用打基础; 提高分析问题和解决问题的能力。 变量和表达式 3种变量:系统变量、环境变量和用户变量。其中系统变量在对参数和命令返回值进行判断时使用,环境变量主要是在程序运行时需要设置,用户变量在编程过程中使用最多。 变量的赋值:直接设置、变量之间置换、从命令行参数获取、从环境变量获取和用户输入。 定义用户变量的语法格式:name=string 变量名必须由字母、数字及下划线组成,并且第一个字符不能为数字。在用户变量赋值号“=”的两边一定不能留空格。建议变量名都用大写字母表示。 Shell中的表达式分为算术运算表达式、关系与逻辑表达式和正则表达式等几种。 1.expr命令 expr命令的功能是求表达式的值。命令格式为: # expr expression 例如:#VAR=20 #expr $VAR \= 20 #expr $VAR \* 5 #VAR=`expr $VAR +1` #echo $VAR 变量和表达式 对expression参数应注意以下几点: (1)用空格隔开每个项。即命令、操作数、操作符均用空格隔开。 (2)将\放在Shell特定的字符前面。 (3)对包含空格和其他特殊字符的字符串要用``(变量置换符)括起来。 变量和表达式 2.算术表达式 由运算符+、-、*、/、=组成的表达式。其语法格式为: $((expression)) 例如: #echo $((2+6)) 8 #X=$((2+6)) echo $X 8 #echo $((Y=X*5)) 40 变量和表达式 3.关系与逻辑表达式 命令test与[ ]都用来进行条件测试,测试的结果返回逻辑值,即真true(0)和假false(1)。 例如: #test 8 –eq 9 #echo $? #OS=“Red Linux Enterprise Linux” #test “$OS” = “Red Hat Linux” #echo $? 变量和表达式 流程控制结构—分支结构 1.if语句 if 表达式1 then 语句块1 else 语句块2 fi 操作实例: 编写一个Shell脚本test1.sh,接收用户输入的文件名,然后在当前目录下检查该文件是否存在。 #!/bin/bash echo “Enter a file name:” read file if test -f $file then echo “File file exists. ” fi 流程控制结构—分支结构 程序必须以下面的行开始(必须放在文件的第一行):#!/bin/bash 符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/bash来执行程序。 test 或 [ ]—表示条件测试。要确保方括号内的空格。 -f—文件测试运算符,测试文件存在且为普通文件,则为真。 read用于接收从键盘输入的值,然后赋值给变量。 流程控制结构—分支结构 练习: (1)请自己修改上面的流程,把文件不存在 时的输出语句加上。 (2)在根目录下有四个文件m1.txt、m2.txt、m3.txt、m4.txt,用Shell编程,实现自动创建m1,m2,m3,m4四个目录,并将m1.txt、m2.txt、m3.txt、m4.txt四个文件分别复制到各自相应的目录下。 流程控制结构—分支结构 2.case 语句 case 字符串 in 值1
显示全部