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>