1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Shell,算术运算,求,1+2+3+.+100,的和是?,思路,:,使用,while,循环,注意循环体和循环终止条件,注意算术运算的使用,1,#!/bin/bash,SUM=0,I=0,while$I-le 100,do,SUM=$(SUM+I),I=$(I+1),done,echo,由,1+2+3+.+100,的和是,:$SUM,2,文件拷贝,在,根目录,下创建四个文件,m1.txt,,,m2.txt,,,m3.txt,,,m4.txt,,用,Shell,编程,实现自动创建,m1,m2,m3,m4,四个
2、目录,并将,m1.txt,,,m2.txt,,,m3.txt,,,m4.txt,四个文件分别拷贝到各自相应的目录下,思路:,用,touch,命令创建文件,,mkdir,命令创建目录,使用,while,循环依次拷贝,目录和文件的表示,3,#!/bin/bash,cd/,touch,m1.txt m2.txt m3.txt m4.txt,I=1,while$I-le 4,do,mkdir,m$I,cp m$I.txt m$I,I=$(I+1),done,4,判断拷贝,用,Shell,编程,判断一文件是不是字符设备文件,如果是将其拷贝到,/dev,目录下,思路:,使用,read,命令从键盘上获取文件
3、名,如何判断是否是字符设备,5,#!/bin/bash,echo,-e,please input filename n,read,FILENAME,if,-c,$FILENAME,then,cp,$FILENAME,/dev,else,echo Its not Charactor device file,fi,6,账号删除,编写,shell,程序,实现自动删除,50,个账号的功能。账号名为,stud1,至,stud50,思路:,采用,while,循环删除,循环中变量的对应表示,stud$i,查看账户是否存在:在,/etc/passwd,文件查找,如何搜索指定用户,ls/etc/passwd|g
4、rep stud$i,7,#!/bin/bash,#deluser.sh,i=1,while,$i-le 50,do,if -n,ls/etc/passwd|grep stud$i,then,userdel,-r stdu$i,else,echo No find stdu$i,i=$($i+1),done,8,创建目录,设计一个,Shell,程序,在,/userdata,目录下建立,50,个目录,即,user1,user50,,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行,思路:,While,循环生成文件目录,判断,/us
5、erdata,是否存在,如果存在直接创建子目录,不存在先创建,/userdata,再创建子目录,权限赋值,rwxr-xr-,数字方式,754,9,#!/bin/bash,#adddir.sh,i=1,while$i-le 50,do,if,-d/userdata,then,mkdir,-p,/userdata/user$i,else,mkdir /userdata,mkdir-p/userdata/user$i,fi,chmod 754/userdata/user$i,i=$($i+1),done,10,读程序,写注释,#!/bin/sh,#/etc/rc.d/rc.httpd,#Start/
6、stop/restart the Apache web server.,#To make,Apache,start automatically at boot,make this,#file executable:chmod,755,/etc/rc.d/rc.httpd,case,“$1,in,start),/usr/sbin/apachectl start;,stop),/usr/sbin/apachectl stop;,restart),/usr/sbin/apachectl restart;,*),echo“usage$0 start|stop|restart”;,esac,11,cas
7、e“$1 in#case,结构开始,判断“位置参数”决定执行的操作。本程序携带一个“位置参数”,即,$1,start)#,若位置参数为,start,/usr/sbin/apachectl start;#,启动,httpd,进程,stop)#,若位置参数为,stop,/usr/sbin/apachectl stop;#,关闭,httpd,进程,restart)#,若位置参数为,stop,/usr/sbin/apachectl restart;#,重新启动,httpd,进程,*,)#,若位置参数不是,start,、,stop,或,restart,时,echo“usage$0 start|stop|
8、restart”;#,显示命令提示信息:程序的正确调用方法,esac#case,结构结束,(,2,)程序的功能是启动,停止或重新启动,httpd,进程,(,3,)程序的调用方式有三种:启动,停止和重新启动。,12,添加用户,设计一个,shell,程序,添加一个,新组为,class1,,然后添加属于这个组的,30,个用户,用户名的形式为,stdxx,,其中,xx,从,01,到,30,。,思路:,使用,while,循环添加,使用,useradd,命令添加,应增加用户的主目录,以及修改目录权限和组的权限,13,#!/bin/sh,i=1,groupadd class1,while$i-le 30,d
9、o,if$i-le 9 ;then,USERNAME=stu0$i,else,USERNAME=stu$i,fi,useradd,$USERNAME,mkdir/home/$USERNAME,chown,-R$USERNAME /home/$USERNAME,chgrp,-R class1 /home/$USERNAME,i=$($i 1),done,14,压缩备份,设计一个,shell,程序,备份并压缩,/etc,目录的所有内容,存放在,/root/bak,目录里,且文件名为如下形式,yymmdd_etc,,,yy,为年,,mm,为月,,dd,为日,思路:,判断目录是否存在,若不存在首先建立目录,使用,tar,命令进行压缩,格式化日期作为文件名,Date+%y%m%d,15,#!/bin/sh,DIRNAME=ls/root|grep bak,if,-z,$DIRNAME ;,then,mkdir/root/bak,cd/root/bak,fi,YY=date%y,MM=date%m,DD=date%d,BACKETC=$YY$MM$DD_etc.tar.gz,tar,-zcvf,$BACKETC /etc,echo“fileback finished!”,16,