【正文】
王工程師走了,留下了陷入沉思的陳飛?!熬投砹_斯方塊吧”,王工程師說。”“那編什么程序呢”。陳飛就和他說了自己對Shell編程的看法。 esacdone(2)修改權(quán)限[rootlocalhost bin]chmod +x test19(3)程序執(zhí)行結(jié)果[rootlocalhost bin]./ test19項(xiàng)目實(shí)踐這段時(shí)間陳飛在學(xué)習(xí)Linux下的Shell 編程,感覺Shell 編程和C語言很相似。程序分析:把此程序分成題目中要求的6大功能模塊,另外加一個(gè)菜單顯示及選擇的主模板。(13) 編寫4個(gè)函數(shù)分別進(jìn)行算術(shù)運(yùn)算+、*、/,并編寫一個(gè)菜單,實(shí)現(xiàn)運(yùn)算命令。(11) 編寫兩個(gè)Shell程序kk及aa,在kk中輸入兩個(gè)數(shù),調(diào)用aa計(jì)算計(jì)算這兩個(gè)數(shù)之間奇數(shù)的和。(9) 編寫三個(gè)Shell程序,分別用for、while、與until求從2+4+…+100的和。(7) 編寫一個(gè)Shell程序,程序執(zhí)行時(shí)從鍵盤讀入一個(gè)文件名,然后創(chuàng)建這個(gè)文件。(5) 編寫一個(gè)Shell程序,此程序的功能是:顯示root下的文件信息,然后建立一個(gè)abc的文件夾,修改此文件的權(quán)限為可執(zhí)行。(3) 某系統(tǒng)管理員需每天做一定的重復(fù)工作,請按照下列要求,編制一個(gè)解決方案:l 在下午4 :50刪除/abc目錄下的全部子目錄和全部文件;l 從早8:00~下午6:00每小時(shí)讀取/xyz目錄下x1文件中每行第一個(gè)域的全部數(shù)據(jù)加入到/;l 每逢星期一下午5:50將/data目錄下的所有目錄和文件歸檔并壓縮為文件:;l 在下午5:55將IDE接口的CDROM卸載(假設(shè):CDROM的設(shè)備名為hdc);l 在早晨8:00前開機(jī)后啟動。3. 簡答題(1) 用Shell編程,判斷一文件是不是字符設(shè)備文件,如果是將其拷貝到 /dev 目錄下。A. B. file1 C. file2 D. file32. 填空題(1) 在Shell編程時(shí),使用方括號表示測試條件的規(guī)則是 。A. Shell腳本程序以文本的形式存儲B. Shell腳本程序在運(yùn)行前需要進(jìn)行編譯C. Shell腳本程序由解釋程序解釋執(zhí)行D. Shell 腳本程序主要用于系統(tǒng)管理和文件操作,它能夠方便自如地處理大量重復(fù)性的系統(tǒng)工作(7) 在Shell編程中關(guān)于$2的描述正確的是( )。A. 2time B. _2$3 C. trust_no_1 D. 2004file(5) 下列對Shell變量FRUIT操作,正確的是( )。A. !/bin/Bash B. /bin/Bash C. /bin/csh D. /bin/Bash(3) 在Shell腳本中,用來讀取文件內(nèi)各個(gè)域的內(nèi)容并將其賦值給Shell變量的命令是( )。make install。 A.,要按順序使用./configure。接著講解了Shell 腳本的執(zhí)行方式和Shell腳本的常見流程控制,為Shell腳本的編程做了準(zhǔn)備。同時(shí)建議對于較大的程序要建立函數(shù)名和變量命名對照表。4)由于Shell對命令中多余的空格不進(jìn)行任何處理,因此程序員可以利用這一特性調(diào)整程序縮進(jìn),達(dá)到增強(qiáng)程序可讀性效果。2)在Shell語句中加入必要的注釋,以便以后查詢和維護(hù),注釋以開頭。(1)調(diào)用test20test19腳本!/bin/shecho “The main name is $0”./test20echo “The first string is $1”test20腳本!/bin/shecho “How are you $USER?”(2)設(shè)置權(quán)限[rootlocalhost bin]chmod +x test19[rootlocalhost bin]chmod +x test20(3)執(zhí)行[rootlocalhost bin]./ test19 abc123The main name is ./test19How are you root?the first string is abc123注意:函數(shù)定義完成后必須同時(shí)寫出函數(shù)的調(diào)用,然后對此文件進(jìn)行權(quán)限設(shè)定,在執(zhí)行此文件。 函數(shù)格式如下:函數(shù)名( ) {函數(shù)體 }函數(shù)調(diào)用方式為函數(shù)名 參數(shù)列表實(shí)例 1219:編寫一函數(shù)add求兩個(gè)數(shù)的和,這兩個(gè)數(shù)用位置參數(shù)傳入,最后輸出結(jié)果。easc(2)設(shè)置權(quán)限[rootlocalhost bin]chmod +x test17(3)執(zhí)行[rootlocalhost bin]./ test17You are rootWele! 128 在Shell腳本中使用函數(shù) u Shell的函數(shù)Shell程序也支持函數(shù)。echo “Wele !”。 //注意這里只有一個(gè)分號 echo “Wele !”。 (1)用vi編輯腳本程序test17[rootlocalhost bin]gedit test17 !/bin/sh case $USER inbeechen) echo “You are beichen!”。在case的每一個(gè)操作的最后面都有兩個(gè)“;;”分號是必需的。j++)) do if(($j%2==1)) then echo “$j”fidone(2)設(shè)置權(quán)限[rootlocalhost bin]chmod +x test16(3)執(zhí)行[rootlocalhost bin]./ test16135791272 case語句 語法:case 表達(dá)式 in值1|值2)操作;;值3|值4)操作;;值5|值6)操作;;*)操作;;esac case的作用就是當(dāng)字符串與某個(gè)值相同是就執(zhí)行那個(gè)值后面的操作。(1)用gedit編輯腳本程序test16[rootlocalhost bin]gedit test16for((j=0。其中,elif理論上可以有無限多個(gè)。 (1)用gedit編輯腳本程序test15[rootlocalhost bin]gedit test15total =0num=0 until [$sum –gt 100] do total=’expor $total +$ num’ num=’expr $num + 1’doneecho “The result is $total”(2)設(shè)置權(quán)限[rootlocalhost bin]chmod +x test15 (3)執(zhí)行[rootlocalhost bin]./ test15The result is 5050 127 條件結(jié)構(gòu)語句u Shell的條件結(jié)構(gòu)語句Shell程序中的條件語句主要有if語句與case語句。do total=’expor $total +$ num’ doneecho “The result is $total”(2)設(shè)置權(quán)限[rootlocalhost bin]chmod +x test14 (3)執(zhí)行[rootlocalhost bin]./ test14The result is 50501263 until循環(huán) 語法:until 表達(dá)式do操作done重復(fù)do和done之間的操作直到表達(dá)式成立為止。實(shí)例 1215:用while循環(huán)求1~100的和。注