編寫shell程式 指令碼時需要注意的幾個問題

2021-08-25 19:29:48 字數 785 閱讀 1748

在實際工作中運用shell程式時,總結的幾個經常忽視的問題,如果不注意很可能導致一些麻煩事

判斷使用者的屬性,比如uid、gid,甚至是使用者名稱

使用者互動——能不互動就不互動吧,鬼知道使用者會輸入什麼;另一方面,加強正規表示式的學習,一般用來作輸入邊界測試很好用

注意程式的可維護性,能函式化的語句都函式化,天知道什麼時候又要你再來維護這個程式

一般的幫助資訊,錯誤資訊和提示資訊也都函式化吧,在可能需要的地方就放上乙個這麼個函式,方便除錯,也方便其他人使用

注意對返回值進行判斷,一般呼叫了比較不太靠譜的函式都寫個返回值判斷,及時退出錯誤的執行

稍微複雜一點的指令碼應該注意支援回滾功能,一般要重寫、增刪檔案都應該先備份一下,如果執行失敗及時恢復回來

有時可能需要寫一些輔助性的功能,比如清理環境,備份環境等的功能實現程式的選項和引數處理能力,對所有有用的、沒用的選項和引數都覆蓋到

適量的注釋

shell中的變數是比較友好的,但有些情況下還是應該把區域性變數區分出來(用local宣告區域性變數);一般將只在函式中使用的變數宣告為區域性變數

有時會呼叫一些需要額外安裝的程式,應該在指令碼中檢測以及提示下是否有安裝軟體包(安裝依賴的一種體現)

編寫Shell指令碼列印輸出變數 及編寫時注意事項

shell指令碼語言是一種非類解釋型語言,弱語言型別 linux支援的所有shell中,都可以通過賦值符號為變數賦值 shell指令碼變數可以分為兩類,區域性變數和環境變數 區域性變數是在自己編寫的shell指令碼內部使用,環境變數可以在系統上面,在bash系統之上使用 其他的程序或者程式都可以呼叫...

編寫SHELL時需要注意空格

以下這是一段簡單的linux shell 功能是用於查詢當前目錄及其所有目錄中,哪些檔案中包括了 html 這四個字元,並將該檔名給列印出來,咋一看這段 應該是沒有問題的,但是實際上卻存在著兩個問題,先看下面的 吧 1 第乙個問題是賦值語句不能夠在變更與值之間有空格,如上面的這一句 wordnum ...

python呼叫shell指令碼時需要切換目錄

最近遇到了乙個問題,就是python 呼叫shell指令碼時,發現輸入輸出的檔案,總是和自己預想的有偏差,但是單獨在linux下執行命令的時候,卻沒有錯誤。後來發現是相對路徑的問題,因為執行python檔案的時候,會有乙個工作目錄,而執行shell指令碼的時候,又會有乙個工作目錄,這樣就很容易混淆。...