作業系統實驗1 Shell程式設計

2021-09-11 13:38:12 字數 944 閱讀 5611

2017-3-15 實驗目的 1.掌握編寫linux shell指令碼程式的基本方法 2.通過編寫linux shell指令碼程式對程序有更深刻的理解 實驗內容 [基本要求] 編寫乙個shell指令碼程式,功能是輸入乙個數字,給出系統中以該數字為pid的程序詳情,將詳情輸出到乙個檔案中。 [具體要求] 執行指令碼程式時,將數字作為乙個輸入; 要有基本注釋

3.實驗報告 (1) 要求1:ps aux 命令在unix環境下基本能得到足夠多的程序資訊 我搜尋了一下,基本上如果要求輸出程序的詳細資訊,ps命令已經足夠了,如果想要某個程序的路徑,也可以使用ls -l /proc/$pid/exe這一命令 要求2:如果沒有得到以該數字為pid的程序程式,那麼命令會報錯,此時用[ $? –eq 0 ]該判斷檢測即可,若返回0 則成功,其餘都是失敗 要求3:提供了相應選單使得使用者可以輸入程序號,以及決定是否要終止程序 要求4:新增了乙個功能:允許使用者終結程序 (2)設計思路 ps –aux 能夠輸入所有的當前程序情況,但是我們不知道使用者需要看的是哪個程序,因而我們可以使用awk命令先擷取第一行,然後在根據使用者輸入的pid找到對應行的結果並輸出 另外在shell語言下,kill -9 $pid 可以幫助我們直接結束程序

(4)【重要】實驗中遇到的問題及解決辦法 1.無法顯示對應pid的資訊:奇怪的是,刪除之前**中 read –p pid 這個問題就解決了,查詢了一下,read –p 功能相當於echo –n,這個會不會對輸入的pid情況有所影響我還沒搞清… 2.if語句無法執行,或者sh test.sh的時候經常說我的else附近語法錯誤[ line 24: syntax error near unexpected token 'fi' ] 查詢之後發現問題在於我的文字編譯環境是notepad++ 的windows環境,在隱藏的符號中,windows換行符是cf lf,而unix環境下是lf,切換文字環境之後問題解決。 3. 有些pid不能被kill,但是也沒有任何對應資訊的顯示,初步判斷是因為沒有對應的許可權,因而連檢視的情形都不許有吧…

shell程式設計 1 shell 基本指令

shell 指令 head test 1.txt 檢視最前面 10 行 head n 15 test 1.txt 檢視 前15 行 tail test 1.txt 檢視 最後 10行記錄 tail n 15 test 1.txt 檢視最後15行記錄 tail f test 1.txt 檢視實時記錄 ...

Linux Shell筆記1 shell程式設計基礎

shell語言是解釋型非強型別語言.linux shell不區分變數的型別,一切都是字串型別,變數名不能是數字開頭.變數長度沒有限制,變數可以進行比較操作和整數操作.整數操作取決於字串的值是否是數字.變數的引用需要用 且 varname一般和 等效,但是注意有時變數可能會出現混淆的情況,此時應該用第...

作業系統實驗1

1 當生產者 消費者分別由位於同一臺計算機上的若干程序充當時,如何設計實驗?給出設計方案和linux c語言實現 重要語句加上注釋 include include include include include include include include include include defi...