linux下shell 程序设计_毕业课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
linux下shell 程序设计
shell编程
教学要点
1.深入理解shell概念。
2.掌握linux下shell程序设计流程。
3.理解shell程序与C程序设计的区别。
4.掌握shell程序设计中用户变量和表达式的使用方法。一.Shell编程概述
问题1:请各位同学在home目录下创建5个目录,目录名称分别为student0,student1,student2,student3,student4.且修改它们的权限为所有用户都具有完全的操作权限。
问题2:请各位同学在home目录下创建100目录,目录名称为class1—class100.
解决办法:通过一个shell脚本程序来实现,程序如下,用vi编辑器建立一个firstshell文件,内容如下:
#!/bin/bash //指明该程序被那个shell来执行!
cd /home/shelldir //进入home/shelldir目录
mkdir newdir //在shelldir目录下新建newdir目录
i=0 //给变量i赋初值
while [ $i –lt 50 ]; do //循环,判断i是否小于50,成立继续循环
let i=i+1 //让i变量值增加1
mkdir /home/shelldir/newdir/student$i //在newdir目录下创建student1到student50
chmod 754 /home/shelldir/newdir/student$i
done
保存文件,退出vi,通过执行#chmod a+x firstshell修改文件权限,赋予文件可执行权限,通过#./firstshell或者#/bin/bash firstshell来执行程序,查看程序运行结果。
程序说明:
1.程序必须以下面的行开始(必须方在文件的第一行):
#!/bin/bash
符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/bash来执行程序。
2.当编辑好脚本时,如果要执行该脚本,还必须使其可执行。要使脚本可执行,必须为脚本添加可执行权限。
#chmod a+x filename
3.输入:# ./filename 来执行脚本程序。
如同其他语言一样,通过我们使用任意一种文字编辑器,比如nedit、kedit、emacs、vi等来编写我们的shell程序。Linux中有好多中不同的shell,通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。这些脚本同样可以在其他bash中使用。
注:1.可以通过#echo $SHELL查看当前系统所运行的shell类型;
2.可以通过#cat /etc/shells查看系统上所有的shell。
3.可以直接通过输入shell名来运行新的shell。比如#ash,启动ash。
二.为什么要进行shell编程
在Linux系统中,虽然有各种各样的图形化接口工具,但是shell 仍然是一个非常灵活的工具。Shell不仅仅是命令的收集,而且是一门非常棒的编程语言。可以通过使用shell使大量的任务自动化,
shell特别擅长系统管理任务,尤其适合那些易用性、可维护性和便携性比效率更重要的任务。
三.shell程序组成
Shell程序有注释,shell命令,变量,表达式,流程控制等组成。
1.shell程序注释
在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。初学者要养成在程序中使用注释的习惯。如果使用了注释,那么即使相当长的时间内没有使用该脚本,也能在很短的时间内明白该脚本的作用及工作原理。这种习惯对一个优秀的技术人员来说非常重要2.命令
a.linux下常用的各类命令,比如ls,cd,mkdir,pwd,rm,rmdir 等等。
b.shell中的算术运算。如 let i=i+1
3.变量
在其他编程语言中可以使用变量。在shell编程中,也有各种变量,特别是在C语言中,变量使用之前一定要先定义,然后再使用;shell程序中也可以使用各种变量,shell编程中所有的变量都由字
符串组成,并且shell程序中的变量不需要提前进行声明定义,可以直接使用。如程序中所示:
i=0 //变量名=值
取出变量值可以加一个美元符号($)在变量前面:$i
Shell脚本中除了用户自己定义的变量仅在程序内有效,还有系统定义的变量,比如环境变量。由export关键字处理过的变量叫做环境变量。我们不对环境变量进行讨论,环境变量至关重要,在后面章节中会详细介绍。
4..shell脚本程序中的表达式
表达式是shell脚本中必不可少,如实例程序中的数学表达式
let i=i+1
shell程序中的数学表达式需要一些程序来完成,如let,expr等。Shell中还有其他的表达式比如关系表达式等如两数比较的
$i –lt 50
5.shell中的流程控制语句
课堂训练1:请大家自己编写一个shell脚本程序,来清除在前面实例中新建的所有student目录。
复习总结:
1.shell程序功能。
2.shell程序设计执行方法。
问题:如何修改配置,使得系统部出现乱码?
四.Shell程序中的变量
在Shell中有三种变量:系统变量,环境变量,用户变量。其中用户变量在编程过程中使用最多,系统变量在对参数判断和命令返回值判断会使用,环境变量主要是在程序运行的时候需要设置。如实例1中的i变量为用户变量。
1. Shell用户变量
用户变量是最常用到的变量,使用也十分简单。用户定义的变量必须由字母数字及下划线组成,并且变量名的第一个字符不能为数字, 与其它UNIX名字一样,变量名是大小写敏感的.对于用户变量,用户变量使用时不需要提前定义,可以直接赋值使用,在引用变量时,需在前面加$符号,用户也可以在变量间进行相互赋值。例如程序实例1中的i=0。需要注意一点:变量和'='之间不要有空格,'='和赋值也不要有空格,否则shell不会认为变量被定义。对于未赋值的变量, Shell以空值对待。