ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:31.22KB ,
资源ID:11144822      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11144822.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(习题07Shell编程.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

习题07Shell编程.docx

1、习题07Shell编程习题07_Shell编程一、单选1. 下面哪个命令是用来定义shell的全局变量( D )。A. exportfs B. aliasC. exports D. export2在Shell脚本中,用来读取文件内各个域的内容并将其赋值Shell变量的命令是( D )。A. fold B. joinC. tr D. read3. 当字符串用双引号()括起来时,SHELL将( C )。A. 解释引号内的特殊字符 B. 执行引号中的命令C. 不解释引号内的特殊字符 D. 结束进程4. 以下哪个环境变量表示当前路径( B )。A. PATH B. PWDC. HOME D. ROOT

2、5. shell不仅是( 用户命令的解释器 ),它同时也是一种功能强大的编程语言,( bash )是Linux的缺省shell。6. 编写的Shell程序运行前必须赋予该脚本文件( 执行 )权限。7. 对于Shell脚本程序,若输入参数数量多于9个,则程序遍历每个参数可通过使用( shift )命令实现。8. 为脚本程序指定执行权的命令及参数是(chmod a+x filename )。9. 在shell编程时,使用方括号表示测试条件的规则是:方括号两边必有( 空格 )。10. 输入了Shell命令的部分字符后按( tab )键可补全其余部分。11改变命令提示符的环境变量是( PS1 )。11

3、. grep -E Hhenr(y|ietta) file的功能是:(在文件File中查找Henry、henry、Henrietta或 henrietta)。12. 如下为命令终端下的一个截图:则,以下两句的执行结果是:( the home path is $HOME )。path=the home path is $HOMEecho $path 13. 以下为程序名为prog的程序内容。则 sh prog a b c d的执行结果为( C )。set A B C Dshiftshiftecho $1三、简答1. 下面给出了一个SHELL程序,试对其行后有#(n)形式的语句进行解释,并说明程序

4、完成的功能。#!/bin/shDIRNAME=ls /root | grep bak #(1)if -z $DIRNAME ; then #(2)mkdir /root/bak ; cd /root/bak #(3)fiYY=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的文件或目录#(2)判断1结果为空#(3)创建目录/root/bak并进入该目录#(

5、4)获取当前时间的年月日#(5)按照年(2位)月(2位)日(2位)_etc方式构造压缩文件名#(6)压缩etc目录并保存在/root/bak中 6分程序功能:若/root/bak不存在则创建之,然后将/etc按日期打包保存于该目录中。2分2. 什么是位置变量?shell的变量类型有哪些种?答:位置变量是指命令行上传递给程序的参数。Shell变量可以分为:用户自定义变量、环境变量、位置变量、特殊变量3. 下面给出了一个SHELL程序,试对其行后有#(n)形式的语句进行解释,并说明程序完成的功能。#!/bin/bash #(1)dir=$1 #(2)if -d $dir #(3)then cd $

6、dir #(4) for file in * doif -f $file #(5)then cat $file #(6)echo “end of file $file” fi done elseecho “bad directory name $dir” fi答:#(1)使用/bin/bash解释脚本#(2)将位置变量1赋值给变量dir#(3)如果dir所指为目录#(4)将当前目录改为dir#(5)如果循环变量file所指是普通文件#(6)显示文件file的内容 6分程序功能:若命令行参数是一个合法目录则显示该目录下所有普通文件的内容,否则显示错误的目录名信息。4. 试编写一个SHELL程序,

7、该程序能接收用户从键盘输入的100个整数,然后求出其总和、最大值及最小值。答:#!/bin/shread maxmin=$maxsum=$maxi=1while $i lt 100do read xsum=expr $sum + $x if $max lt $x then max=$x fi if $ x lt $min then min=$x fi i=expr $i + 1doneecho sum = $sum ; max = $max min = $min 5.创建一个shell 脚本,它从用户那里接收10个数,并显示已输入的最大的数。参考程序:#! /bin/bashmax=0for(

8、count=1 ; count ; /backup/bak01.txt50 17 * * * tar zcvf backup.tar.gz /data55 17 * * * umount /dev/hdc(3)由超级用户登录,用crontab执行 prgx文件中的内容:rootxxx:#crontab prgx;在每日早晨8:00之前开机后即可自动启动crontab。6设计一个shell程序,在每月第一天备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日。Shell程序fileback存放在/usr/bin目录

9、下。参考答案:(1)编写shell程序fileback:#!/bin/shDIRNAME=ls /root | grep bakif -z $DIRNAME ; thenmkdir /root/bakcd /root/bakfiYY=date +%yMM=date +%mDD=date +%dBACKETC=$YY$MM$DD_etc.tar.gztar zcvf $BACKETC /etcecho fileback finished!(2)编写任务定时器:echo 0 0 1 * * /bin/sh /usr/bin/fileback ; /root/etcbakcroncrontab /r

10、oot/etcbakcron或使用crontab -e 命令添加定时任务:0 1 * * * /bin/sh /usr/bin/fileback7有一普通用户想在每周日凌晨零点零分定期备份/user/backup到/tmp目录下,该用户应如何做?参考答案:(1)第一种方法:用户应使用crontab e 命令创建crontab文件。格式如下:0 0 * * sun cp r /user/backup /tmp(2)第二种方法:用户先在自己目录下新建文件file,文件内容如下:0 * * sun cp r /user/backup /tmp然后执行 crontab file 使生效。8.设计一个S

11、hell程序,在/userdata目录下建立50个目录,即user1user50,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。参考答案: 建立程序 Pro16如下:#!/bin/shi=1while i -le 50 doif -d /userdata ;thenmkdir -p /userdata/user$ichmod 754 /userdata/user$iecho user$ilet i = i + 1 (或i=$($i1)elsemkdir /userdatamkdir -p /userdata/user$ichmod 754 /userdata/user$iecho user$ilet i = i + 1 (或i=$($i1)fidone

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1