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>