实训五 Linux shell编程
【实习目的】
掌握Linux shell的基本编程,包括:编程、调试与应用 【实习指导】
一、shell编程简介
Linux shell是一个命令解释器,用来接受并执行命令(包括运行批处理文件和执行程序)。shell环绕在内核的外层,它是Linux操作系统和用户之间的界面。当用户从shell或其他程序向Linux传递命令,内核会做出相应的反应。
这里,将介绍Linux下最常用的shell —— bash。bash(Bourne Again Shell)是大多数Linux发行套件的缺省shell,并被大多数用户所使用。
在命令行输入命令时,每次输入一个命令,就可得到系统的响应。但如果经常要依次执行同一组命令,就可以利用shell程序来实现。shell程序是放在一个文件中的一系列的Linux命令。执行shell程序时,由Linux逐条解释和执行每个命令。
二、shell程序文件
shell程序文件是一个特殊的文本文件,其内容包含一系列可在shell提示符下执行的命令,以及shell提供的专用的命令和控制语句。Linux提供的shell命令可通过命令help来获得,在shell提示符下,键入命令“help | more”,图5-1所示是获得所有shell命令的列表的一部分。
图5-1
如要获得其中命令echo的详细帮助信息,则在shell提示符下,键入命令“help echo”,便获得该命令的详细使用信息如图5-2所示。
- 1 -
图5-2
图中可观察到,该命令的功能是在屏幕上输出给定的信息。
shell程序文件的运行过程是将shell程序文件中的命令依次执行。
三、shell程序的建立
shell程序文件可用任何一个文件编辑器(如vi)来建立。
例如,建立shell程序shex1,存放在当前目录下(假定当前目录为 /root),程序功能为先清屏,然后显示98年的1、2、3月份的月历。程序文件内容如下:
clear
cal 1 98 cal 2 98 cal 3 98
用vi编辑器建立shell程序文件shex1的方法如下: (1)键入命令“vi shex1”,启动vi; (2)按命令“i”,进入vi的插入状态; (3)输入程序文件内容; (4)按
四、shell程序的运行
运行shell程序有两种方法:一种是在shell环境下,将shell 程序文件作为子shell程序被调用执行;另一种是将shell程序文件视作命令来执行(因此,shell程序文件可以看作是将各种命令组合在一起而形成的新命令),此时必须赋予shell程序文件执行权限。
方法一:sh
- 2 -
方法二:
【例如】分别用两种方法运行已建立的shell程序文件shex1。 方法一:
在shell提示符下,键入命令:“sh shex1”。
方法二:
(1) 首先,给shell程序文件shex1赋予可执行权限,则在shell提示符下,键入命令:“chmod a+x shex1”;
(2)然后,在shell 提示符下,键入命令“/root/shex1”便可执行该shex1程序,如同其他shell命令一样。
两种方法的运行结果,如图5-3所示。
图5-3
运行命令中有[参数]和没有[参数]的情况分别称为带参数的运行命令和不带参数的运行命令。在shell程序中可使用的形参为$0、$1、$2、……$9,当程序运行时,<参数1> <参数2> ……依次赋值给$1、$2、……,通常称运行命令中所带的参数为实参。
$0是一个特殊的形参,其值规定为当前运行的shell程序命令本身。
由于形参个数有限,当参数较多时,可通过命令shift来移动形参与实参的对应关系,执行一次shift后,$1、$2、……变为依次与<参数2> <参数3>……对应,再执行一次shift后,$1、$2、……变为依次与<参数3> <参数4>……对应,依此类推。通过下面的例子shell程序shex2,可观察参数的移动变化。
shex2程序文件内容如下: echo $0 $1 $2 shift
- 3 -