Linuxshell大作業(yè)_第1頁
Linuxshell大作業(yè)_第2頁
Linuxshell大作業(yè)_第3頁
Linuxshell大作業(yè)_第4頁
Linuxshell大作業(yè)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Shell大作業(yè)說明書題目LINUXShell編程學(xué)生姓名學(xué)號系另I年級專業(yè)指導(dǎo)教師完成日期2010年6月25日、需求分析1 .任務(wù)目標(biāo)Linux作為多用戶、多任務(wù)的操作系統(tǒng),其系統(tǒng)資源是所有用戶共享的。對用戶的管理是操作系統(tǒng)的重點(diǎn)。LINUX課程設(shè)af要用shell編程實(shí)現(xiàn),將理論學(xué)習(xí)付諸實(shí)踐。設(shè)計(jì)一個腳本(shell)程序能實(shí)現(xiàn)增加、刪除、查找和顯示特定用戶信息的功能。2 .系統(tǒng)要求程序要包括四個文件,即menuadd,delete,passwd四個文件。passwd文件是用來保存用戶信息;menu文件是主菜單,要求運(yùn)行的時候能顯示一個菜單供用戶選擇;add文件是用來增加信息;delete

2、文件是用來刪除信息。在主Shell腳本文件里(必須以menu命名)要有一個多操作選項(xiàng)的菜單以便用戶從中選擇。對于任務(wù)6和7,需要編寫單獨(dú)的Shell腳本文件(必須分別命名為add和delete)并且在主腳本menu文件中調(diào)用這些腳本文件。在主目錄下建立一個以07wl-0x-xx(x為班、座號)命名的目錄,并且在作業(yè)中使用它作為工作目錄。3 .系統(tǒng)功能在主Shell腳本文件里(即menu文件)要有一個多操作選項(xiàng)的菜單以便用戶從中選擇。在不同任務(wù)的中,這些操作能自動實(shí)現(xiàn)以下功能:1、在屏幕上顯示當(dāng)前所有用戶的記錄2、在屏幕上顯示當(dāng)前所有用戶(經(jīng)過格式化和排序的)的記錄3、只在屏幕上顯示用戶名和用戶

3、ID4、只在屏幕上顯示(經(jīng)過格式化和排序的)用戶名和用戶ID5、查詢并顯示特定用戶的記錄6、往passwd文件里增加新的用戶記錄7、從passwd文件里刪除某個用戶記錄其中:menu文件中的程序完成1,2,3,4,5功能;另外寫一個add腳本文件和delete腳本文件分別實(shí)現(xiàn)選項(xiàng)6和7.當(dāng)用戶做了選擇且所選的操作完成之后,可以再次顯示主菜單以供用戶做下一步選擇。用while循環(huán)和case條件語句配合來完成此操作。、總體設(shè)計(jì)1.功能圖2.流程圖2.2.1主菜單王采單你的選擇2.2.2add模塊4r進(jìn)入add界面*-=;=_輸入信息是有效+,呆存*迸入主菜單2.2.3delete模塊是否組Y進(jìn)入d

4、elete界面輸入ID是否存在Y_«*"*_是否刪除-JJ-3"irN進(jìn)入主菜單士.里界面皿一1是否繼凌添加+一-v-主來單N絲賣刪除Y三、詳細(xì)設(shè)計(jì)1.MEN吐菜單主菜單文件編他巨;霞看之)終端root®locaIhosIr??趇#shMi】u.wh|在menu腳本文件里將創(chuàng)建如下菜單,菜單里包含供用戶選擇的一些操作文件®蝮耨出)杳春安終端轉(zhuǎn)到(幫助出)用戶信息管理主菜電1 顯示當(dāng)前所有記錄2 .格式化顯示當(dāng)前所有記錄3 顯示用戶名和用戶【D%格式化顯示用戶名和mS,咨詢特定用戶信息你的過弁:|6,添加新用戶九刪除用戶Q3UH!無效輸入當(dāng)用戶做

5、了選擇且所選的操作完成之后,應(yīng)再次顯示主菜單以供用戶做下一步選擇。在以上1、2、3、4、5、6、7等待用戶做出選擇的菜單中,如果用戶偶爾輸入了一個代碼而不是或Q,就有信息提示“無效的代碼,請按回車鍵繼續(xù)”。等用戶按了回車鍵之后,再次顯示主菜單供用戶做其他選擇。如圖:文件®牖輯®查看®終端轉(zhuǎn)到gf此選項(xiàng)不是默認(rèn)提供的功能,請確認(rèn),確認(rèn)??無輸入在以上等待用戶做出選擇的菜單中,如果用戶簡單地按了回車鍵,就會出現(xiàn)信息“無效的代碼"。等用戶按了回車鍵之后,再次顯示主菜單供用戶做其他選擇。文件建?編螂E)上鮮端CD選項(xiàng)尚來選稿!確認(rèn)??當(dāng)用戶選擇了1時一一打印當(dāng)前

6、所有用戶記錄文件此漏抑與有件V終端工轉(zhuǎn)到以t力他的陰仃的用戶信息如卜所示:一-,用戶名,碼IDGID匚作目錄一-Shellraccdoii1233216。070fln(HhingshiRngjunOUOOOOt?UJ701gogowingjunshrL.IfF當(dāng)用戶選擇2時一一打印當(dāng)前經(jīng)過格式化的用戶記錄后iglNkjolho禮文件®編輯®住和。終端3轉(zhuǎn)到應(yīng)畢助,旦)當(dāng)前的所仃的用戶信息如下所示;用戶名密碼1DG1D說明作目錄raccoon123321600700nothii帽raccoonuhm嘀un0000006017(Hg理口junsh當(dāng)用戶選擇3時,一一打印用戶名和

7、用戶IDrool1/4kJOihMJsL工件&編林&府杼/終端切轉(zhuǎn)紂色當(dāng)前的所仃的用戶的用戶名和用戶I的汴所示:用戶由JDraccoon*600wingjun+tiUl當(dāng)用戶選擇4時,一一打?。ǜ袷交模┯脩裘陀脩鬒DMt”竹皿臉:;1:文件編輯怎)""上終端3轉(zhuǎn)向幫當(dāng)前曲標(biāo)的用一百種打,客和用戶1的卜所示:用戶名IDraccoon600uangjunB01當(dāng)用戶選擇5時,一一查找特定的記錄文件建)端輯®S5<v)終端(1)抖到蟲輸入搜索關(guān)犍訶:raccoonraccoon:123321:60。:700:noIhing:racroon:sh

8、喃:Ln“如果輸入的關(guān)鍵字不在記錄里,pgm唾;wBmwjwwag文體£>編我國有邱終端切拈到應(yīng)幫助且,輸入抑索關(guān)鍵詞;abc線遇幡,1pa訃聞】文件中,井不存在與abe我的信息0如果用戶簡單地按回車鍵而不是輸入關(guān)鍵字你的選擇是:5輸入美錯字t沒仃輸入美健字輸入美譙字:|2. ADDC件當(dāng)用戶在主菜單里選擇6時你的add腳本文件就要被調(diào)用七件國)編輯(1?壹都¥)終端轉(zhuǎn)郅用戶名:English密碼:868888法在輸入次空碼:8888S8111J'LU>602用戶組GIO702說明:Hi7SJFxLL(bash,shFc!ihtksh):sh用戶工作目錄

9、:Ehglifh成功創(chuàng)建!EngIi讓用戶信息添加成功!是否維續(xù)添加H他用戶?(y/n)|輸入用戶名用戶輸入一個無效的用戶名文出(£)編輯®查看(山終端轉(zhuǎn)到(幫助®用戶名:36鎬設(shè)!用戶名的只能由平數(shù)字打頭的字符和髏字組成,請里新輸入!用戶名:用戶只按回車沒有輸入E戶名:音誤!用戶名星爪能為空的.諳也新愉人!甘戶名;|輸入密碼輸入密碼時不顯示密碼t7確認(rèn)密碼:要求密碼長度至少達(dá)到6位以上,!k*/l<rm-密碼:密碼氏度至少要6位!請電新輸入!確認(rèn)密碼如果與密碼不符應(yīng)該讓用戶重新輸入密碼詞"444請住輸入一次密碼:55555S兩次輸人的密碼不一樣.

10、請業(yè)新輸入!密碼;用戶ID如果用戶只是簡單的按回車鍵用戶UID錯索!用戶U】是不能為空的.請此新愉人!用戶U1D:|如果用戶輸入的是一個無效的ID或者是不符合格式的ID|戶UI&fgh背誤!用戶的UID必須為數(shù)字,請重新輸入!4JJ'UID:|組ID對組ID的要求類似與用戶ID,一個有效的組ID(數(shù)字、一般非超級用戶的ID大等于500)|用戶UID6防用戶拗篇|。錯誤!用戶組的1D范圍為S(W60000,請重新輸入I用戶組CD登錄shell一個有效的shell必須只能是bash、sh、kash、csh中的一種登有SIELL(bash»sbhcsbrksti):wwv輸

11、入的Me”類型【皿不在本系統(tǒng)支持范圍內(nèi).請重新輸入!(bshtshfcshtksh):|如果用戶只按回車沒有輸入的話則顯示信息:“沒有輸入!”,并提示用戶再次輸入shell名二.!、II"II!沒有輸入!保存記錄;ASffcLL(bash,shncsh.ksh):sh用戶工作目錄:jjj成功創(chuàng)建!jjj用戶信息添加成功!工廠一i?。?吃一.7LI3. DELET發(fā)件當(dāng)用戶在主菜單中選擇7時,你的delete腳本文件必須被調(diào)用文件圖編輯覃fi«v)終端CD轉(zhuǎn)到(幫助出)輸入用戶的名林:jjj目標(biāo)帳號確認(rèn):jjj1444444:6:777:h;jjjh是否刪除該信息?"

12、;(y/n»用戶輸入一個無效的用戶ID是”刪除誣信息?<y/n)是否繼線惻除其他用戶??(y/n)y輸入用戶的名稱;hgf你飾)人的hgf用戶不存價(jià)!是"縫鏤刪除其他用戶??(y/n)用戶簡單的按回車鍵而沒有任何輸入徜人用廠ID:沒行愉人!繼續(xù)刪除嫁入用戶的名稱:jjj目株假號確認(rèn)jjj;444444:666:777:h:jjj:sh是仃刪除該信息?(y/n)y刪除成功!運(yùn)行繼續(xù)刪除其他用戶?(y/n)HI四、附錄(程序代碼):1、menu主腳本文件代碼#!/bin/sh-#聲明全局變量dataSource='passwd'homePath='

13、.'AddUsers=".Add.sh"DeleteUsers=".Delete.sh"CheckDataSourceFileExist()if-f$dataSourcethen#文件存在return0;else#文件不存在clear;echo-n"警告【$dataSource不存在!t#確認(rèn)!"read;return1;fi)choice="F"while$choice!="Q"-a$choice!="q"doCheckDataSourceFileExist;if$

14、?-ne1thenclear;echo"用戶信息管理主菜單"echo"=echo"1.顯示當(dāng)前所有記錄"echo"2.格式化顯示當(dāng)前所有記錄"echo"3.顯示用戶名和用戶ID”;echo"4.格式化顯示用戶名和ID"echo"5.查詢特定用戶信息"echo"6.添加新用戶"echo"7.刪除用戶"echo"Q.退出"echo-n"你的選擇:";readchoice;#作用是清除由于read到st

15、ring.Empty的時候引發(fā)的bash參數(shù)過多的錯誤。if-z$choicethenchoice="empty"ficlear;if$choice="empty"thenecho"選項(xiàng)尚未選擇!"elsecase$choicein1) CheckDataSourceFileExist;if$?-ne1thenecho"當(dāng)前的所有的用戶信息如下所示:";echo"用戶名密碼IDGID說明工作目錄登錄Shell"cat$dataSource|tr":|more;fi;2) CheckDa

16、taSourceFileExist;if$?-ne1thenecho"當(dāng)前的所有的用戶信息如下所示:";echo-e"用戶名t密碼tIDtGIDt說明t工作目錄t登錄Shell"sort-k1$dataSource|awk-F":"'print$1"t"$2"t"$3"t"$4"t"$5"t"$6"t"$7"t"'|more;fi;3) CheckDataSourceFileExi

17、st;if$?-ne1thenecho"當(dāng)前的所有的用戶的用戶名和用戶ID如下所示:";echo-e"用戶名,ID"awk-F":"'print$1","$3'$dataSource|more;fi;4) CheckDataSourceFileExist;if$?-ne1thenecho"當(dāng)前的所有的用戶的用戶名和用戶ID如下所示:“;echo-e"用戶名tID"awk-F":"'print$1"t"$3'$dat

18、aSource|more;fi;5) CheckDataSourceFileExist;if$?-ne1thenkeyWords=""while-z$keyWordsdoecho-n"輸入搜索關(guān)鍵詞:";readkeyWords;if-z$keyWordsthenfidoneCheckDataSourceFileExist;if$?-ne1thengrep-i$keyWords$dataSource;if$?-eq1thenecho"很遺憾,【$dataSource文件中,并不存在與$keyWords一致的信息。"fififi;6)

19、$AddUsers;7) $DeleteUsers;Q)printf"程序已經(jīng)退出。"q)printf"程序已經(jīng)退出。"*)echo$choice":此選項(xiàng)不是默認(rèn)提供的功能。請確認(rèn)。"esacfiecho-n"確認(rèn)?"read;fidone2、add腳本文件代碼clear;isContinue="y"userName=""while$isContinue="y"-o$isContinue="Y"do#用戶名處理,輸入一致到字符串長度不

20、為。為止userName=""while-z$userNamedoecho-n"用戶名:"readuserName;if-z$userNamethenecho"錯誤!用戶名是不能為空的,請重新輸入!"continue;fiif'exprmatch$userName"a-zA-Z0-9a-zA-Z*"'-ne'exprlength$userName'thenecho"錯誤!用戶名的只能由非數(shù)字打頭的字符和數(shù)字組成,請重新輸入!"userName="&quo

21、t;continue;fidone#密碼處理:1.驗(yàn)空,3.密碼長度要6位,由大小寫字母、數(shù)字和控制字符組成,2.驗(yàn)兩次輸入的一致性,passWord=""passWordAgain=""while-z$passWorddoecho-n"密碼:"readpassWord;if-z$passWordthenecho"錯誤!密碼是不能為空的,請重新輸入!"continue;fiif'exprlength$passWord'-ne6thenecho"密碼長度為6位,請重新輸入!"pas

22、sWord=""continue;fiif'exprmatch$passWord"0-9a-zA-Z*"'-ne'exprlength$passWord'thenecho"密碼由大小寫字母、數(shù)字和控制字符組成,請重新輸入!"passWord=""continue;fiecho-n"請?jiān)谳斎胍淮蚊艽a:"readpassWordAgain;if$passWordAgain!=$passWordthenecho"兩次輸入的密碼不一樣,請重新輸入!"p

23、assWord=""continue;fidone#用戶UID輸入處理,UID為數(shù)字、一般非超級用戶的ID大等于500uID=""while-z$uIDdoecho-n"用戶UID:"readuID;if-z$uIDthenecho"錯誤!用戶UID是不能為空的,請重新輸入!"continue;fiif'exprmatch$uID"0-9*"'-ne'exprlength$uID'thenecho"錯誤!用戶的UID必須為數(shù)字,請重新輸入!"u

24、ID=""continue;fiif$uID-It500-o$uID-gt60000thenecho"錯誤!一般非超級用戶的ID范圍為50060000,請重新輸入!"uID=""continue;fidone#用戶組GID處理gID=""while-z$gIDdoecho-n"用戶組GID:"readgID;if-z$gIDthenecho"錯誤!用戶GID是不能為空的,請重新輸入!"continue;fiif'exprmatch$gID"0-9*"

25、;'-ne'exprlength$gID'thenecho"錯誤!用戶的GID必須為數(shù)字,請重新輸入!"gID=""continue;fiif$gID-It500-o$gID-gt60000thenecho"錯誤!用戶組的ID范圍為50060000,請重新輸入!"gID=""continue;fidoneecho-n"說明:"readnote;#bash,sh,csh,kshshellVersion=""while-z$shellVersiondoec

26、ho-n"登錄SHELL(bash,sh,csh,ksh):"readshellVersion;if$shellVersion!="bash"-a$shellVersion!="sh"-a$shellVersion!="csh"-a$shellVersion!="ksh"thenecho"輸入的Shell類型【$shellVersion不在本系統(tǒng)支持范圍內(nèi),請重新輸入!"shellVersion=""fidoneecho-n"用戶工作目錄:&qu

27、ot;mkdir/home/$userName;if$?-eq0thenecho$userName"成功創(chuàng)建!"fiuserInfo="$userName:$passWord:$uID:$gID:$note:$userName:$shellVersion"echo$userInfo>>$dataSource;if$?-eq0thenecho"$userName用戶信息添加成功!"elseecho"$userName用戶信息添加失?。?quot;fiecho-n"是否繼續(xù)添加其他用戶?(y/n)"

28、;readisContinue;done3、detele腳本文件代碼clear;isContinue="y"userName=""while$isContinue="y"-o$isContinue="Y"dowhile$isContinue="y"-o$isContinue="Y"doecho-n"輸入用戶的名稱:"readuserName;if-z"$userName"thenecho"用戶名不能為空,請重新輸入!"isContinue="Y"continue;fiChe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論