习题07_Shell编程_第1页
习题07_Shell编程_第2页
习题07_Shell编程_第3页
习题07_Shell编程_第4页
习题07_Shell编程_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、练习07 _ shell程式设计一、单一选择1.以下哪个命令用于定义shell的全局变量(d)A.exportfsB。aliasC.exportsD。export2.shell脚本用于读取文件中的单个域内容并将其分配给shell变量的命令为(d)。A.fold B. joinC.tr D. read3.如果字符串用双引号()括起来,shell将使用(c)。A.解释引号中的特殊字符b .执行引号中的命令C.不解释引号中的特殊字符。d .结束进程以下哪个环境变量表示当前路径(b)?A.路径B. PWDC.首页d .根目录5.shell不仅是(用户命令的解释程序),还是功能强大的编程语言,(bash

2、)是Linux的默认shell。6.您创建的shell程序必须在运行之前对此脚本文件授予(执行)权限。7.对于Shell脚本程序,如果输入参数数大于9,程序可以使用(Shell)命令遍历每个参数。8.指定脚本程序的执行权限的命令和参数为(chmod a x filename)。9.在shell编程中,使用方括号表示测试条件的规则在方括号两侧必须有(空格)。10.在shell命令中输入一些字符后,可按(tab)键补充其馀部分。11.变更指令提示的环境变数为(PS1)。11.grep-e hh ENR (y | ieta)文件的功能是:(在文件文件中查找Henry、Henry、Henrietta或

3、Henrietta)。以下是命令终端下的屏幕快照。以下两句话的结果如下:(the home path is $HOME)。Path= the home path is $ home Echo $path13.以下是程序名为Prog的程序的内容:Sh Prog a b c d的运行结果为(c)。Set A B C DShiftShiftEcho $1三、简单的回答1.shell程序如下所示,其后试图解释#(n)形式的语句,并说明程序完成的功能。#!/bin/shDIRNAME=ls /root | grep bak#(1)if-z $ DIRNAME ;Then#(2)mkdir/root/ba

4、k;Cd /root/bak#(3)FiYY=date % yMM=date % mDD=date %d#(4)backetc=$ YY $ mm $ DD _ etc . tar . gz #(5)Tarzvf $ backetc/etc # (6)echo“file back finished!”A: #(1)获取/根目录中包含bak的文件或目录#(2)判断1结果为空#(3)创建目录/root/bak,然后导航到该目录#(4)获得当前时间的年月日#(5)年(2个字符)月(2个字符)日(2个字符)_etc方式配置归档文件名#(6)压缩etc目录并在/root/bak中保存6分钟程序功能:如果

5、/root/bak不存在,请创建它,然后按日期将/etc打包到该目录中。两点2.什么是位置变量?shell的变量类型是什么?a:位置变量是命令行上载传递给程序的参数。shell变量可以分为用户定义的变量、环境变量、位置变量和特殊变量3.下面是shell程序。然后尝试解释#(n)形式的语句,并说明程序完成的功能。#!/bin/bash #(1)Dir=$1 #(2)If -d $dir #(3)ThenCd $dir #(4)For file in *DoIf -f $file #(5)ThenCat $file #(6)Echo end of file $file Fi完成Elseecho“b

6、ad目录名称$dir”FiA: #(1)要解释脚本,请使用/bin/bash#(2)将位置变量1赋给变量dir#(3)如果dir引用目录#(4)将当前目录更改为dir#(5)重复变量file引用常规文件时#(6)显示文件文件的内容6点程序功能:如果命令行参数是有效的目录,则显示该目录下所有常规文件的内容;否则,显示无效的目录名信息。4.接受用户在键盘上输入的100个整数,然后编写一个shell程序,求出其总和、最大值和最小值。A: #!/bin/shRead maxMin=$maxSum=$maxI=1While $i -lt 100DoRead xSum=expr $sum $x 。If $

7、max -lt $xThenMax=$xFiIf $ x -lt $minThenMin=$xFiI=expr $i 1 完成Echo sum=$ sumMax=$max min=$min 5.生成从用户接收10个数字并显示已输入的最大数量的shell脚本。参考程序:#!/bin/bashMax=0for(count=1);Count=10Count=count 1)DoEcho -n Enter number $count : Read valueIf $max -lt $valueThenMax=$valueFi完成6.如果普通用户希望在每个星期日上午0:00将/user/backup定期

8、备份到/tmp目录,该用户怎么办?见答复:(1)第一种方法:必须使用Crontabe命令创建crontab文件。格式如下:0 0 * * sun CP-r/user/backup/tmp(2)第二种方法:用户首先在自己的目录下创建一个新文件文件,内容如下:0 * * sun CP-r/user/backup/tmp然后运行crontab file以应用它。7.编写shell脚本以验证给定字符串是否为回文(palindrome)。参考程序:#!/bin/bashecho“Enter string”Read strLen=echo $str | WC -c 。Len=expr $len-1 L=e

9、xpr $len/2 Ctr=1Flag=0While test $ctr -le $lDoA=echo $str | cut -c$ctr B=echo $str | cut -c$len 。If test $a -ne $bThen flag=1BreakFiCtr=expr $ctr 1 Len=expr $len-1 完成If test $flag -eq 0Then echo String is palindrome else echo“String not a palind Rome”Fi8.在UNIX/Linux系统上,环境变量非常重要,请在字符界面中尝试以下操作:(1)如何获取

10、PATH变量的角色,PATH的值?(2) UNIX/Linux系统中超级用户的环境变量PATH是否可以包含当前目录?(3)如果超级用户的当前目录中有可执行文件mypro,该如何运行(创建运行时键盘输入)?(4)如何使用此命令在后台运行(创建运行时键盘输入)?A: (1) PATH是命令搜索路径,由echo $PATH命令表示。(2)在UNIX/Linux上的PATH变量中,指定当前路径(.),不能包含(3)。/我的亲;(4)。/my pro9.设计计算n的阶乘的shell程序。要求:(1)在命令行中,接受参数n。(2)进程开始后立即显示n的合法性,即是否有自变量,是否有正整数,如果非法,则显示

11、错误提示。(3)最终计算结果。参考代码:#!/bin/shif$ #-eq 0;Then echo -e $0 no Params。 a n ;exit 0;Fix= echo $ 1 | awk/: digit :/ print $ 0 。If x$x != x ;Then echo -e Input: $* error! a ;exit 1;Fifact=1;Tmp=1While $tmp -le $1DoFact=$(fact*tmp) Tmp=$(tmp)完成Echo fact=$fact 4.薄壳程式如何为使用者变数指定值?简述了每种分配方法的使用方法。(1)等号分配1)等号前后不能

12、有空格。2)如果需要将包含空格的字符串指定给用户变量,请应用单引号将字符串括起来。(2)键盘分配通过Read命令实现。用法:read用户变量名称当shell程序在该行上运行时,等待用户从键盘输入。用户按enter键时,shell将用户输入的内容指定给用户变量。(3)命令替代分配用法如下:用户变量=命令此语句首先执行后单引号之间的命令。然后,将运行后输出的内容指定给相应的用户变量。在此分配方法中等号前后不能有空格,命令必须用单引号(即重音)括起来。10.编写弹出菜单的shell程序并实现简单的菜单功能。* * * * * * * * * * * * * * * * * * * * * * * *

13、 * * * * * * * * * * * * * * * * * * * * * * MENU * 1.copy 2.rename * 3.remove 4.find * 5.exit * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *如果按数字1,系统将提示您在输入源文件名和目标文件名后执行复制。输入要重命名的文件或目录后,要提示重命名,请输入数字2。如果输入数字3,系统将提示您输入要删除的文件并执行删除操作。如果输入数字4,系统将提示您输入要查找的文件并执

14、行查找操作。输入数字5将结束菜单shell程序的执行。#!/bin/sh-Clearwhile0;Doecho * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *Echo“菜单”echo“1 . copy 2 . rename”echo“3 . remove 4 . find”echo“5 . exit”echo * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *回声Echo -n select: Read choice回声Case $choice in1)echo-n“source file :”Read src回声Echo -n destination fold: Read desCp -arf $src $desIf $?ThenEcho copy suce

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论