Shell
脚本编程实验
一.
实验目的
(1)
掌握
Shell
编程的基本方法
(2)
了解
Shell
脚本的基础知识
二.
基础知识
(1)
Shell
脚本的基本知识
(2)
掌握
Linux
环境下
vi
编译器的使用方法
(3)
掌握
Linux
下基本命令的使用方法
三.
实验环境
(1)
硬件:
PC
机
Pentium500
以上,硬盘
40GB
以下,内存
128MB
以上
(2)
软件:
PC
机操作系统
Red Hat Linux 9.0
四.
情景描述
设计一个
Shell
程序,添加一个新组
class1
,然后添加属于这个组的
30
个用户,然后设计一个
Shell
程序,删除新添加的
30
用户及新添加的组
五.
完成实验所需时间:约
60
分钟
六.
完成一个简单
Shell
程序的编写和执行过程
目标:编写
Shell
脚本文件,以文件名
addusers
保存。通过改变文件的权限,使
addusers
能够顺利执行。
<
一
>
编写
Shell
编程。
1.
进入
vim
编辑器
[root@localhost root]#vim addusers
2.
输入实验代码
#!/bin/sh //
声明是个
Shell
脚本程序,用
sh
编译器
i=1; //
给
i
赋初值,
i=1
groupadd class1 //
创建一个名为
class1
的组
while [ $i �Cle 30 ] //
用
while
循环语句判断是否满足条件,如果
i
小于等于
30
,则一直执行
do
下面的语句,否则跳出循环。
do
if [ $i �Cle 9 ] //
如果
i
小于等于
9
,则执行
then
的语句,否则执行
else
下的语句
then
USERNAME=stu0${i} //
将变量
stu0${i}
赋值给
USERNAME
else
USERNAME=stu${i} //
将变量
stu${i}
赋值给
USERNAME
fi //if
和
fi
是成对出现的
useradd $USERNAME //
增加
$USERNAME
用户
chown �CR $USERNAME /home/$USERNAME //
用递归的方式将
/home/$USERNAME
目录及其所有子目录、文件的主变成
$USERNAME
用户
chgrp �CR class1 /home/$USERNAME //
用递归式将
/home/$USERNAME
目录及其下面的所有子目录和文件的用户组为
class1
i=$(($i+1)) //i
的值自加
1
done
while
语句
在
while
中,当一个给定的条件为真时,则一直循环执行
do
下面的语句,直到条件为假为止。
While
语句的表达式为:
While expression
do
Statements
done
if
语句
Shell
程序中的条件分支是通过
if
语句来实现的,其一般格式为:
if expression
then
commands
else
commands
fi
1.
完成代码的编写之后,按住
Esc
键之后,输入:
wq
保存退出。
<
二
>
修改
Shell
程序的权限
1.
输入命令
[root@localhost root]#chmod a+x addusers
2.
查看文件的属性
[root@localhost root]#ls �Cl addusers
<
三
>
运行程序
1.
运行程序
[root@localhost root]#./addusers
2.
查看
/home
目录,对比脚本执行前后,
[root@localhost root]#ls �Cl /home/
然后设计一个
Shell
程序,删除新添加的
30
个用及添加的组
class1
<
一
>
编写
Shell
程序
1.
进入
vim
编辑器
[root@localhost root]#vim delusers
2.
输入以下实验代码
#!/bin/sh //
声明是个
Shell
脚本程序,用
sh
编译器
i=1 //
给
i
赋初值,
i=1
while [ $i �Cle 30 ] //
用
while
循环语句判断是否满足条件,如果
i
小于等于
30
,则一直执行
do
下面的语句,否则跳出循环
do
if [ $i �Cle 9 ] //
如果
i
小于等于
9
,则执行
then
的语句,否则执行
else
下的语句
then
USERNAME=$stu0${i} //
将变量
stu0${i}
赋值给
USERNAME
else
USERNAME=$stu${i} //
将变量
stu${i}
赋值给
USERNAME
fi
userdel $USERNAME //
删除
$USERNAME
用户
rm �Crf /home/$USERNAME //
删除
/home/
目录下生产的
$USERNAME
文件夹
i=$(($i+1)) //i
自加
1
done //
将自加后的
i
值返回
while
循环进行判断
groupdel class1 //
最后删除组
class1
3.
完成代码的编写之后,按
Esc
键之后,输入
:wq
保存退出
<
二
>
修改
Shell
程序的权限
1.
输入命令
[root@localhost root]#chmod a+x delusers
2.
查看文件的属性
[root@localhost root]#ls �Cl delusers
<
三
>
运行程序
1.
运行程序
[root@localhost root]#./delusers
2.
查看
/home
目录,对比脚本执行前后
哈 哈!!终于完成了。。。