1、1. 下面给出了一个SHELL程序,试对其行后有#(n)形式的语句进行解释,并说明程序完成的功能。#!/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中名称包含ba
2、k的文件或目录#(2)判断1结果为空#(3)创建目录/root/bak并进入该目录#(4)获取当前时间的年月日#(5)按照年(2位)月(2位)日(2位)_etc方式构造压缩文件名#(6)压缩etc目录并保存在/root/bak中 6分程序功能:若/root/bak不存在则创建之,然后将/etc按日期打包保存于该目录中。2分2. 什么是位置变量?shell的变量类型有哪些种?位置变量是指命令行上传递给程序的参数。Shell变量可以分为:用户自定义变量、环境变量、位置变量、特殊变量3. 下面给出了一个SHELL程序,试对其行后有#(n)形式的语句进行解释,并说明程序完成的功能。/bin/bash
3、#(1)dir=$1 #(2)if -d $dir #(3)then cd $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” #(1)使用/bin/bash解释脚本#(2)将位置变量1赋值给变量dir#(3)如果dir所指为目录#(4)将当前目录改为dir#(5)如果循环变量file所指是普通文件#(6)显示文件file的容 6分若命令行参数是一个合法目录则显示该目录下所有普通文件的容,否
4、则显示错误的目录名信息。4. 试编写一个SHELL程序,该程序能接收用户从键盘输入的100个整数,然后求出其总和、最大值及最小值。read maxmin=$maxsum=$maxi=1while $i lt 100do read xsum=expr $sum + $x if $max lt $x max=$x if $ x lt $min min=$x fi i=expr $i + 1donesum = $sum ; max = $max min = $min 5.创建一个shell 脚本,它从用户那里接收10个数,并显示已输入的最大的数。参考程序: /bin/bashmax=0for(cou
5、nt=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目录下。(1)编写
6、shell程序fileback:DIRNAME=ls /root | grep bakmkdir /root/bakcd /root/bakYY=date +%yMM=date +%mDD=date +%dBACKETC=$YY$MM$DD_etc.tar.gztar zcvf $BACKETC /etc(2)编写任务定时器:0 0 1 * * /bin/sh /usr/bin/fileback /root/etcbakcroncrontab /root/etcbakcron或使用crontab -e 命令添加定时任务:0 1 * * * /bin/sh /usr/bin/fileback7有一普通用户想在每周日凌晨零点零分定期备份/user/backup到/tmp目录下,该用户应如何做?8.设计一个Shell程序,在/userdata目录下建立50个目录,即user1user50,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。 建立程序 Pro16如下:while i -le 50 if -d /userdata ;mkdir -p /userdata/user$ichmod 754 /userdata/user$iuser$ilet i = i + 1 (或i=$($i1)mkdir /userdata
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1