一、实验目的
1.了解shell的特点和主要种类。
2.掌握 shel1 脚本的建立和执行方式。
3.掌握bash的基本语法。
4.学会编写shell 脚本。
二、实验内容
- shell 脚本的建立和执行。
- 历史命令和别名定义。
- shell变量和位置参数、环境变量。
- bash的特殊字符。
- 一般控制结构。
- 算术运算及bash 函数。
三、主要实验步骤
-
利用 vi建立一个脚本文件,其中包括 date、cal、pwd、 ls等常用命令;然后以不同方式执行该脚本。
创建脚本文件:
以不同的方式执行脚本:-
输入定向到shell脚本
shell从example中读取命令行,并执行他们。当shell到达文件末尾时,终止执行,并把控制返回到shell命令状态
-
以脚本名作为bash参数
执行过程与第一种方式相同,但这一种方式能在脚本名后面带参数,从而将参数值传递给程序中的命令,使一个shell脚本可以处理多种情况,就如同函数的调用,可以根据问题给定相应的实参 -
将shell脚本的权限设置为可执行,然后在提示符下直接执行
首先将文本编辑器建立的shell脚本设置为有执行权限
然后将该脚本所在的目录添加到命令搜索路径(PATH)中
然后就可以在提示符后输入脚本名example就可以直接执行该文件
-
-
运行history命令,配置历史命令环境。
显示历史命令清单:
配置历史命令环境:- 通过重新为环境变量HISTFILE赋值来改变存放历史命令的文件
- 利用HISTSIZE变量重新设定历史文件中能够保留的命令的个数限定
- 通过重新为环境变量HISTFILE赋值来改变存放历史命令的文件
-
体会 bash的命令补齐功能。
在命令行上输入部分目录名称或文件名并按下Tap键后,可能出现下述情况:- 若系统可以唯一确定是哪个目录或文件,则自动补全相应的名称。按Enter键执行该命令
- 若Linux找到了不止一个文件名,则会把文件名补全到这些文件名中相同的部分的最后一个字符
- 若shell根据已输入的字符不能唯一确定相应的名称,则会尽量补齐后面的字符,然后响铃提示,要求用户进一步输入名字中后面的字符
如果输入过程中不知道后面的字符,系统也无法唯一确定名称,则可以先按Esc键,然后按?键,或者连续按两次Tab键,shell会列出当前目录下所有可以匹配已输入字符的文件或者给出可以匹配已输入字符的命令
-
用alias定义别名, 然后执行。
定义别名:
定义变量my并赋值,然后执行 -
对习题4.8中的shell 脚本进行编辑,然后执行。
新建脚本example2,并输入如下内容,然后保存退出
然后执行该脚本
由此可见该脚本的功能是换行 -
按习题4.14要求编写脚本,然后执行。
求斐波那契数列的前10项及总和
-
按习题4.18要求编写脚本,然后执行。
设计一个程序cuts,由标准输入读取数据,获取由第一个参数n和第二个参数m所限定范围的数据,n和m都是整数,即从输入的字符串中抽取第n个字符至第m个字符之间的所有字符(包含这两个字符)
-
运行例 4.20的程序。若取消其中的“eval",则会出现什么情况?
取消其中的eval后: