当前位置:文档之家› 习题07_Shell编程电子教案

习题07_Shell编程电子教案

fi
YY=`date +%y`;MM=`date +%m`;DD=`date +%d`#(4)
BACKETC=$YY$MM$DD_etc.tar.gz#(5)
tar zcvf $BACKETC /etc#(6)
echo "fileback finished!"
答:#(1)获取/root中名称包含bak的文件或目录
max=0
for((count=1 ; count <= 10 ; count = count+1))
do
echo -n "Enter number $count : "
read value
if [ $max -lt $value ]
then
max=$value
fi
done
6.有一普通用户想在每周日凌晨零点零分定期备份/user/backup到/tmp目录下,该用户应如何做?
2.什么是位置变量?shell的变量类型有哪些种?
答:位置变量是指命令行上传递给程序的参数。
Shell变量可以分为:用户自定义变量、环境变量、位置变量、特殊变量
3.下面给出了一个SHELL程序,试对其行后有#(n)形式的语句进行解释,并说明程序完成的功能。
#!/bin/bash #(1)
dir=$1 #(2)
三、简答
1.下面给出了一个SHELL程序,试对其行后有#(n)形式的语句进行解释,并说明程序完成的功能。
#!/bin/sh
DIRNAME=`ls /root | grep bak`#(1)
if [ -z "$DIRNAME" ] ; then#(2)
mkdir /root/bak;cd /root/bak#(3)
if [ -d $dir ] #(3)
then
cd $dir #(4)
for file in *
do
if [-f $file ] #(5)
then
cat $file #(6)
echo“end of file $file”
fi
done
else
echo“bad directory name $dir”
fi
10.输入了Shell命令的部分字符后按(tab)键可补全其余部分。
11.改变命令提示符的环境变量是(PS1)。
11.grep -E '[Hh]enr(y|ietta)' file的功能是:(在文件File中查找Henry、henry、Henrietta或henrietta)。
12.如下为命令终端下的一个截图:
then
max=$x
fi
if [$ x–lt $min]
then
min=$x
fi
i=`expr $i+1`
done
echo "sum = $sum; max= $max min= $min"
5.创建一个shell脚本,它从用户那里接收10个数,并显示已输入的最大的数。
参考程序:
#! /bin/bash
则,以下两句的执行结果是:(the home path is $HOME)。
path=‘the home path is $HOME’
echo $path
13.以下为程序名为prog的程序内容。则sh prog a b c d的执行结果为(C)。
set A B C D
shift
shift
echo $1
答:#(1)使用/bin/bash解释脚本
#(2)将位置变量1赋值给变量dir
#(3)如果dir所指为目录
#(4)将当前目录改为dir
#(5)如果循环变量file所指是普通文件
#(6)显示文件file的内容6分
程序功能:若命令行参数是一个合法目录则显示该目录下所有普通文件的内容,否则显示错误的目录名信息。
参考答案:
(1)第一种方法:
用户应使用crontab –e命令创建crontab文件。格式如下:
0 0 * * sun cp –r /user/backup /tmp
(2)第二种方法:
用户先在自己目录下新建文件file,文件内容如下:
0 * * sun cp –r /user/backup /tmp
6.编写的Shell程序运行前必须赋予该脚本文件(执行)权限。
7.对于Shell脚本程序,若输入参数数量多于9个,则程序遍历每个参数可通过使用(shift)命令实现。
8.为脚本程序指定执行权的命令及参数是(chmod a+x filename)。
9.在shell编程时,使用方括号表示测试条件的规则是:方括号两边必有(空格)。
C.trD.read
3.当字符串用双引号(’’)括起来时,SHELL将(C)。
A.解释引号内的特殊字符B.执行引号中的命令
C.不解释引号内的特殊字符D.结束进程
4.以下哪个环境变量表示当前路径(B)。
A.PATHB.PWD
C.HOMED.ROOT
5.shell不仅是(用户命令的解释器),它同时也是一种功能强大的编程语言,(bash)是Linux的缺省shell。
#(2)判断1结果为空
#(3)创建目录/root/bak并进入该目录
#(4)获取当前时间的年月日
#(5)按照年(2位)月(2位)日(2位)_etc方式构造压缩文件名
#(6)压缩etc目录并保存在/root/bak中6分
程序功能:若/root/bak不存在则创建之,然后将/etc按日期打包保存于该目录中。2分
习题07_Shell编程
习题07_Shell编程
一、单选
1.下面哪个命令是用来定义shell的全局变量(D)。
A. exportfsB. alias
C. exportsD. export
2.在Shell脚本中,用来读取文件内各个域的内容并将其赋值Shell变量的命令是(D)。
A.foldB.join
然后执行crontab file使生效。
7.写一个shell脚本,检查给出的串是否为回文(palindrome)。
参考程序:
#! /bin/bash
echo "Enter stringo $str | wc -c`
len=`expr $len - 1`
4.试编写一个SHELL程序,该程序能接收用户从键盘输入的100个整数,然后求出其总和、最大值及最小值。
答:#!/bin/sh
read max
min=$max
sum=$max
i=1
while [$i–lt 100]
do
read x
sum=`expr $sum + $x`
if [$max–lt $x]
相关主题