Unix/Linux Shell指令碼入門執行個體[00原創]__Linux

來源:互聯網
上載者:User
這是一個簡單了Shell執行個體。
下面是它的要求描述:

實驗五 UNIX Shell 程式設計


實驗內容:使用UNIX Shell程式設計語言,編寫UNIX Shell 應用程式。


實驗要求:按下列要求編寫Shell指令碼,把所學的各種UNIX命令串聯起來。


1.運行Shell指令碼,首先顯示類似如下的菜單:

What would you like to do:

List Directory **********************1

Change Directory*********************2

Edit file****************************3

Remove file**************************4

Add messages in a file***************5

Search keyword in a specified file***6

Exit Menu****************************7

Enter your choice:


2.輸入1:以長格式列出目前的目錄內容。

3.輸入2:改變工作目錄到自己指定的目標目錄中。(要求改變後可以用選項1查看該目錄中的內容)

4.輸入3:提示輸入一個檔案名稱(該檔案可能不存在),然後調用vi編輯器進行編輯。

5.輸入4:刪除一個指定的檔案。

6.輸入5: 提示輸入一個檔案名稱,然後將使用者在鍵盤上命令列方式下輸入的任何資訊都添加並儲存到這個檔案中,直到使用者輸入一個空行後才完成該項操作。

注意:該操作不能是只輸入一行後就停止,要能不斷輸入多行資訊;不能調用vi編輯器來輸入。

例如:一個名為”phone”的檔案,原有內容為(也可以是無內容的新檔案):

“ This is a phone list”

現在要在其後添加一些電話薄的欄位資訊,

選擇“5”後,顯示:Input the filename that you want to add messages:

然後從鍵盤輸入檔案名稱:phone

接著提示:輸入要添加的資訊,例如使用者要添加如下資訊:


David Brown (7771) 91101111 m@m.com …………

Emma Redd (6970) 22292222 in@o.com ………..

Tom Swanson (823) 44474444 ai@e.com ………..

Ming Li (0871) 3133333 bb@r.com ………..

……………. …… …….. ………… ………..


輸入完成後,當使用者輸入一個空行即完成該項添加資訊的操作,並退出該選項。該”phone”檔案添加後變為:(可以用選項3查看)


This is a phone list

David Brown (7771) 91101111 m@m.com …………

Emma Redd (6970) 22292222 in@o.com ………..

Tom Swanson (823) 44474444 ai@e.com ………..

Ming Li (0871) 3133333 bb@r.com ………..

……………. …… …….. ………… ………..


7. 輸入6:在指定的檔案中尋找某個關鍵字(該檔案,並顯示找到的關鍵字所在的行。

要求:尋找時忽略大小寫,並在每個找到的輸出行前顯示行號,要判斷輸入的名字是否為檔案而非目錄,若是檔案則進行尋找工作,若檔案不存在或是目錄則顯示出錯資訊。

8.輸入7:退出該指令碼程式,回到Shell提示符下。

9.在來源程式中加入適當的注釋。


注意:該菜單要能夠反覆顯示,即各項選完後要能再次返回菜單。


實驗報告:

1、將自己編製並調試好的程式,用到的各種檔案放在自己的使用者主目錄下。

2、抄寫自己的Shell來源程式(自己加紙寫)

3、寫出設計思想。

4、寫出上機體會與總結

5、回答問題:執行指令碼的方式有哪幾種,有何區別。

完成報告如下:

實驗五 UNIX Shell 程式設計

1. 原始碼如下:

#!/bin/bash




C="0"




#


# Do list directory


#


listDirectory()


{


ls -l ./


return


}




#


# Do change the directory


#


changeDirectory()


{


read -p "Input the New Directory Path : " CDI




# check out wether the directory is exist


if [ -d $CDI ]


then


cd $CDI


else


printf "the Directory is not Exist/n"


fi




return


}






#


# Do edit a file


#


editFile()


{


NFILE=""


read -p "Input the File Name to Edit : " NFILE


vi $NFILE


return


}




#


# Do remove a file


#


removeFile()


{


RFILE=""


read -p "Input the File Name to Remove : " RFILE


if [ -f $RFILE ]


then


rm $RFILE


else


printf "the File is not Exist/n"


fi


return


}




#


# Do input messages


#


addMessages()


{


MFILE=""


read -p "Input the File Name to Add Messages : " MFILE



# start to add new messanges


MMSG=""


read -p "Input the Messages : " MMSG


while [ "$MMSG" != "" ]


do


echo $MMSG >> $MFILE


MMSG=""


read -p "Input the Messages : " MMSG


done


printf "End of the file/n"


return


}






相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.