二、實驗內容及要求
1、使用Bourne shell撰寫一個shell腳本程式,并除錯通過。
2、通過對Bourne Shell的學習和應用,要求學生能夠使用Bourne Shell語言解決實際問題,要求學生具有初步的Shell程式設計能力。
3、使用Bourne Shell 撰寫一段程式腳本。實作:輸入1到9范圍內任何一個整數,并將該整數與1~9相乘的結果輸出到檔案中result_multiply中。
4、用Bourne shell撰寫一段程式腳本,用于比較兩個檔案的內容,保存為shell_test2,并除錯。
要求撰寫并除錯通實驗程式腳本shell_test2。
三、實驗儀器設備
安裝有UNIX作業系統的計算機。
四、實驗原理
UNIX系統中為用戶提供了shell高級程式設計語言,方便了系統維護和應用開發,也提高了編程效率。通常UNIX系統提供幾種不同的shell,但以Bourne shell為最基本的shell,因此熟悉它可以為學習其它shell腳本語言奠定基礎。各種shell有所不同,但它們突出特點是:把已有命令進行適當組合,構成新的命令;用戶和UNIX系統之間可以通過shell進行互動;靈活利用位置引數傳遞引數值;結構化的程式模塊,提供了順序流程控制、條件控制、回圈控制等;提供通配符、輸入/輸出重定向、管道等機制;便于用戶開發新的命令;
1、利用shell程序把用戶撰寫的可執行程式與UNIX命令結合在一起,當作新的命令使用;提供后臺處理方式;
2、利用exec命令實作打開(open)檔案,并分配給檔案識別符號供讀檔案(read)內容使用,然后關閉檔案(close)。同時還需利用位置引數傳遞引數值。另外還需利用條件控制、回圈控制等陳述句。
本實驗要求撰寫的程式。首先,是利用Bourne shell環境下,分別采用控制結構的測驗陳述句來完成所要求的功能;其次,用Bourne shell提供的各種機制和陳述句,完成所要求的比較兩個檔案內容的功能。
實驗步驟
(一)
1、登錄UNIX系統。
2、創建腳本檔案。
3、輸入一個整數(1-9)。
4、輸入的資料不符合要求,例外退出。
5、實作該整數與1~9所有整數相乘,并將結果輸出到檔案result_multiply中。
(二)
1、登錄UNIX系統。
2、用vi創建檔案file1,將其拷貝為file2和file3 ,將檔案file3內容進行改動。
3、在shell提示符下輸入:vi shell_test2
4、該腳本在執行時需要兩個引數,分別是被比較的兩個檔案名。
5、在vi中用Bourne shell腳本語言撰寫程式,使其具備如下功能:
⑴ 檢查用戶執行該腳本時是否正確輸入兩個引數;按照出現的錯誤分別顯示:
① 在未輸入兩個引數的情況下顯示:“two filename arguments”;例外退出程式;
② 在其中一個引數不是檔案名時顯示:“filename”;例外退出程式。
⑵ 分別將兩個位置引數賦給兩個變數f1和f2,打開并分配給這兩個變數所代表的檔案以3和4檔案識別符號。
⑶ 按檔案一內的行回圈,分別按行將這兩個檔案讀入兩個變數ln1和ln2,并加以比較;并將比較結果分情況顯示:
① 如果有不同的行,顯示:“different line” 和不同的行內容,退出比較回圈;
② 如果檔案二先抵達eof,顯示:“f1>f2”,退出比較回圈;
③ 如果檔案一先抵達eof,退出比較回圈。
⑷ 顯示:“f2>f1”,否則顯示:“the same”。
⑸ 按檔案識別符號將兩個被比較的檔案關閉,正常退出程式。
11、將程式保存為檔案shell_test2。
12、在shell提示符下輸入:chmod 700 shell_test2 。
13、在shell提示符下輸入:輸入shell_test2 file1 file2,觀察程式執行結果并除錯。
14、在shell提示符下輸入:輸入shell_test2 file2 file3,觀察程式執行結果。
15、退出系統。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/125921.html
標籤:非技術區
上一篇:求助:網站根目錄無法設定在局域網內別的服務器【CentOS7.5 + Nginx1.16 + PHP7.2.17】
