PAGE20
Linux技术基础与服务应用
PAGE3
第6章Linux的shell编程
一、填空题
1.在Shell脚本中,使用__________来声明一个变量。=
2.在Shell脚本中,获取脚本第一个参数的变量是__________。$1
3.在Shell脚本中,注释的开头是__________。#
4.使用__________运算符,可以判断字符串是否为空。-z
5.使用__________运算符,可以判断文件是否存在。-e
6.使用__________运算符,可以比较两个整数是否相等。-eq
7.使用__________运算符,可以检查用户是否具有某个文件的执行权限。-x
8.在Shell脚本中,使用__________可以声明一个数组。()
9.假设数组名为array,使用__________可以获取该数组的所有元素。${array[@]}
10.使用__________可以在脚本中实现条件判断。test或[]
11.使用__________可以获取上一个命令的退出状态。$?
12.使用__________可以获取脚本的参数个数。$#
二、单选题
1.下列选项中,哪个按键可以补齐Shell命令?()A
A.Tab B.Shift
C.Esc D.Ctrl
2.下列选项中,哪一个符号是管道符号?()D
A.`` B.$
C. D.|
3.下列选项中,哪一项不是Shell的特殊变量?()C
A.$# B.$$
C.$ D.$@
4.关于Shell脚本,下列描述错误的是哪一项?()D
A.脚本第一行以“#!”开头,用来指定命令解释器
B.source命令可以运行Shell脚本
C.脚本中的注释可以使用“#”符号标识
D.Shell脚本编写完毕就具有执行权限
5.下列选项中,哪一个环境变量用来保存当前用户的家目录?()B
A.SHELL B.HOME
C.PATH D.PWD
三、判断题
1.Shell变量的值不能被修改。错
2.Shell中的双引号可以屏蔽所有字符的功能。错
3.case结构的判断条件只能是常量或正则表达式。对
4.until循环只在循环条件不成立时才会执行循环体。对
5.Shell脚本中还可以定义函数。对
四、简答题
1.简述一个简单的Shell脚本的创建过程?
答案:
Shell程序基本语法较为简单,主要有开头、注释及执行命令组成。
(1)开头
Shell程序必须以#!/bin/bash开始(必须放在文件的第一行)。“#!”用来告诉系统它后面的参数是用来执行该文件的程序,在这个例子中使用/bin/bash来执行程序。chmodu+x[Shell脚本]获取脚本的运行权限。
(2)注释
在进行Shell编程时,有两种注释:单行和多行注释。以“#”开头的语句直到这一行的结束表示该行的单行注释。多行注释格式如下:
:!
注释的内容
!
(3)要执行的命令
在进行Shell编程时,可以输入多行命令以得到命令的结果信息,这样就提高系统管理的工作效率。
其中(1)和(3)两项不能省略。
2.简述执行Shell脚本的几种方法?
答案:
第1种方法:输入整个文件的完整路径或相对路径(注意文件要存放在当前目录中)来执行Shell程序,该方法需要具有该文件的可执行权限。
第2种方法:bash、sh、source和.命令实现Shell脚本文件的执行。
五、Shell脚本编写
1.创建一个Shell脚本文件lx1.sh,实现的功能:定义变量AK的值为200,并用变量引用的四种方法,将其显示在屏幕上。
答案:
#!/bin/bash
AK=200
echo变量AK的值是:$AK
echo变量AK的值是:${AK}
echo变量AK的值是:$AK
echo变量AK的值是:${AK}
2.创建一个Shell脚本lx2.sh,其功能是:显示运行脚本时所有参数的个数,脚本的名称,第1个参数、第2个参数、第3个参数,所有参数的内容。
答案:
#!/bin/bash
echo所有参数的个数是:$#
echo运行脚本名称是:$0
echo传递的第1个参数是:$1
echo传递的第2个参数是:$2
echo传递的第3个参数是:$3
echo所有参数内容是:$@
3.创建一个Shell脚本lx3.sh,其功能是:显