UNIX下的文件系统与DOS完全不同,它对于磁盘文件的操作应用非常复杂,常常以长而难 记的命令行为代价,不便于使用。在磁盘管理中,如要格式化文件系统、构造文件系统、挂装 文件系统、下装文件系统、显示软盘系统参数、将硬盘数据备份至软盘、将软盘信息恢复至 硬盘,这都是系统管理员常做的。为使用方便,笔者书写了一个shell程序,将各项命令都纳入 菜单,从而避免了复杂命令行的麻烦。程序在SCO UNIX系统下调试通过。
¥cat menu,sh<Enter> /*显示菜单程序MENU,SH清单*/
;
#程序名;MENU,SH
# SCO UNIX环境下的软盘管理工具
#
PATH=/bin;/usr/bin;
true=0
while test ¥ true=0
do
clear
echo "\n\n\n\n\n"
echo"
** SCO UNIX环境下的软盘管理工具**
1.软盘格式化(format)
2.构造文件系统(mkfs)
3.安装软盘(mount)
4.拆卸软盘(umount)
5.显示软盘信息
6.将硬盘信息拷贝至软盘
7.将软盘信息拷贝至硬盘
0.退出
etho" 请选择(0,1―7):\c"
read choice
clear
if test ¥choice -eq 0
then clear
echo"\n\n\n\n\n"
exit 0
fi
getyn() /*shell函数*/
{
while echo"¥*继续吗!请回答(y/n)?\c"
do read yn rest
case ¥yn in
[yY])return 0;;
[nN])return 1;;
*)echo"******请回答(y或n)!!!";;
esac
done
}
fy() /*shell函数*/
{
echo请输入你的软盘规格:\(0-代表A驱动器\)\(1-代表B驱动器\);"\c"
read floppy
if test ¥ floppy -eq 0
then DEVICE=/dev/rfd0135ds18
FD=A
else DEVICE=/dev/rfd196ds15
FD=B
fi
}
case ¥ choice in
1) fy
clear
while
getyn
do
format ¥ DEVICE
done;;
2)echo 您的软盘规格是\(0-代表1.44MB\)\(1-代表1.2MB\);"\c"
read floppy
if test ¥ floppy-eq 0
then /etc/mkfs/dev/rfd0135ds18 1440
echo"******软盘文件系统构造成功!!"
sleep 3
else /etc/mkfs/dev/rfd196ds15 1200
echo"******软盘文件系统构造成功!!"
sleep 3
fi;;
3) echo 您的软盘规格是\(0-代表1.44MB\)\(1-代表1.2MB\);"\c"
read floppy
if test ¥ floppy -eq 0
then echo "软盘已成功地挂接在/usr/jn下,即可将子目录/usr/jn当作软盘进行操作 。"
echo"用户注意:软盘安装后,在没有拆卸之前,不要将软盘取出!"
sleep 3
/etc/mount/dev/fd0/usr/jn
/etc/mount
sleep 3
else echo"软盘已成功地挂接在/usr/jn下,即可将子目录/usr/jn当作软盘进行操作 。"
echo"用户注意:软盘安装后,在没有拆卸之前,不要将软盘取出!"
sleep 3
/etc/mount /dev/fd1/usr/jn
/etc/mount
sleep 3
fi ;;
4)echo 请输入你的软盘规格:\(0-代表A驱动器\)\(1-代表B驱动器\):"\c"
read floppy
if test ¥ floppy -eq 0
then DEVICE=/dev/fd0
FD=A
else DEVICE=/dev/fd1
FD=B
fi
/etc/umount ¥ DEVICE
if test ¥!-eq 0
then echo"******软盘已经拆卸!!你现在可以取出软盘!"
sleep 3
fi;;
5)fy
echo 请将软盘插入¥FD驱动器中!并关好门!……
echo
sleep 2
tar tvf ¥DEVICE
sleep 5;;
6)while getyn
do
clear
echo 现在的工作路径是:'pwd'
echo 输入待拷贝的路径和文件名\(如:\/usr\/bd1996\):"\c"
read file
fy
echo 正在拷贝,请稍候……
tar uvf ¥DEVICE ¥file
done;;
7)while getyn
do
echo " 用户注意:从软盘中读入指定的文件时,必须一个文件一个文件地"
echo "指定,不能使用通配符!!!"
fy
echo 请将软盘插入
¥FD驱动器中!
tar tvf ¥DEVICE
echo 请输入软盘中待读入的文件名:"\c"
read file
echo 正在读盘,请稍候……
tar xvf ¥DEVICE ¥file
echo" ****拷贝完成!!!"
sleep 2
clear
done;;
esac
done
¥sh-v menu.sh<Enter> /*对shell程序的全部执行过程进行跟踪*/
¥chmod u+x menu.sh<Enter>