LinuxShell編程Joseph自編講義_第1頁
LinuxShell編程Joseph自編講義_第2頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、編程自編講義一、腳本基礎是用戶與操作系統溝通的橋梁。 用戶既可以輸入命令執(zhí)行, 又可以利用 腳本編程, 完成更加復雜的操作。腳本是一種解釋型語言,在執(zhí)行腳本時,解釋器逐行的掃描代碼 并執(zhí)行,與編譯型語言不同。的種類眾多,常見的有: (或)、 ()、 ()、 ()、 (),等等。由于 易用和免費,且作為大多數系統默認的, 的使用是最廣泛的。 和 的語法非常相似, 一般情況下可以通用。編寫腳本的格式是固定的,如下:第一行: 或 注:(第一行可以省略,省略后為系統的默認配置,和下初始為,可以在首選項中 修改)第二行及以后 首行中的符號“!”告訴系統其后路徑所指定的程序即是解釋此腳本文件的程序。在程序

2、編寫完成之后,用“ 文件名”命令將文件屬性設置為“可執(zhí)行”,如果首行沒 有這句話,在執(zhí)行腳本文件的時候,將因找不到解釋器而發(fā)生錯誤。編輯完畢,將腳本存盤為,文件名后綴表明這是一個腳本文件。執(zhí)行腳本的時候, 要先將腳本文件的屬性改為可執(zhí)行的:后續(xù)的部分就是主程序,腳本像高級語言一樣,也有變量賦值,也有控制語句。除 第一行外,“”字符之后的語句為的注釋。在解釋器掃描注釋時,會跳過“”之后的所 有內容,直到一行的結尾,與的“”是一個道理。強烈建議在程序中使用注釋,如果您 使用了注釋, 那么即使相當長的時間內沒有使用該腳本, 您也能在很短的時間內明白該 腳本的作用及工作原理。二、變量與函數的變量分為兩

3、種:本地數據區(qū)變量(也稱本地變量)、用戶環(huán)境區(qū)變量(也稱環(huán)境 變量)(函數也相應分為兩種,后面章節(jié)講述)。在工作機制中,存在一個子的概念, 子是登錄(父)為了運行程序而建立的一個全新的,這個全新的將會使用自己的本地變 量,以及繼承自父的環(huán)境變量,父的本地變量對子隱藏,而且,子 和父的變量在命名 上不會有任何沖突。 當子需要繼承父的變量時,可以使用命令將變量作為環(huán)境變量復制 給子(類似于的值傳遞),子可以修改和存取它,但是這種修改父看不到,也就是說,子無法修改父的變量。環(huán)境變量的上述特性對于由子產生的后繼子也是如此??梢栽谧?量賦值之后用,也可以在變量賦值之前用。若需要修改根的變量,唯一的辦法是

4、在(為)中寫入腳本語句,并重啟,(相當于,為系統啟動時自動執(zhí)行的腳本)。命令用于顯示所有環(huán)境變量及其取值(為外部命令);及命令用于顯示所有本地變量、環(huán)境變量及取值,以及所有局部函數和環(huán)境函數及其函數體;-“變量名函數名”命令用于將本地數據區(qū)中的變量復制到用戶環(huán)境區(qū), 亦即:將本地變量轉化為環(huán)境變量, 功能與 “變量名函數名”相同。在某些下,將環(huán)境變量轉化為局部變可以用“變量名函數名”命令。 -命令顯示所有局部函數、環(huán)境函數的名稱和函數體,-“變量 名”或 “變量名”將變量配置為只讀(只讀變量不能夠修改,不能夠),變量無法解 除只讀。命令用于顯示所有變量 (不包括函數)的屬性, 前綴顯示“ ”的

5、是本地變量, “”的是環(huán)境變量。在標準下(使用 - 設置),命令用于顯示所有環(huán)境變量(不包 括函數)的屬性,與 -命令相同,前綴顯示“”的是環(huán)境變量。注:腳本是一種弱類型解釋型語言, 使用變量的時候無需聲明其類型, 任何變量的 類型本質上都為字符串, 在不同的地方有不同的解釋。新的變量會在本地數據區(qū)分配內 存進行存儲(屬于本地變量),這個變量歸當前的所有,任何其他進程都不能訪問本地 變量,包括子。變量的引用就是將變量簡單地替換為字符串,引用方式有三種:$變量名 或$變量名或 ”$變量名 ”注:$變量名或$”變量名” 不能引用變量 變量的聲明和賦值的方式有三種:第一種: 變量名”字符串” 等號左

6、右都不能有空格, 字符串中如果出現了某個 變量的引用,則以該變量值(所代表的字符串)替換,用法與類似。第二種:變量名 字符串 等號左右都不能有空格,單引號內字符串忠實于其 字面值。第三種: 變量名字符串 等號左右都不能有空格,字符串中不能有空格,如果 字符串中出現空格, 則變量賦值為第一個空格前面的部分,第一個空格之后第二個空格 之前的字符串被執(zhí)行,第二個空格之后的字符串全部被忽略掉。注:“ ”為轉義字符 例: : !輸出:: !例: 單引號內字符串忠實于其字面輸出:: !刪除變量的方法為:變量名 必須是變量名,不能是變量名的引用 引用帶默認值的變量方式:$變量名字符串如果變量已經賦值,則使用

7、該變量值。如果變量為空,則使用 字符串作為值。例:$輸出$輸出為空$輸出$輸出$變量名字符串如果變量已經賦值,則使用該變量值。如果變量為空,則將字 符串賦值到變量中,并使用字符串作為值。$輸出$輸出$輸出$輸出如果需要檢驗變量是否為空, 如果為空的話則顯示錯誤信息, 則使用下面的表達式:$變量名:?如果需要顯示自己定義的信息,則如下:$變量名:?字符串將變量作為數學表達式使用,有三種方法,第一種是用雙括號,第二種是用單中括 號,第三種是使用, 指令在實際中用的很少, 多用第一種方式替代。 數學運算符號有:例:$()輸出$輸出$($)輸出$輸出$($)將賦到中$輸出 輸出$輸出,加號前后必須有空

8、格 一個外部命令執(zhí)行后的輸出可以替換這個命令本身, 甚至可以將輸出值賦到一個變 量中,其語法如下:命令或者$(命令)注:$(命令)在下不支持,只能在或中使用例:$()輸出:輸出: 將變量當作數字使用的方法:-變量名例:$輸出為空$輸出$輸出$輸出$輸出附:的默認變量有:$:保存程序命令行參數的數目$、$、$. $:保存所有輸入的命令行的第個參數$?:保存前一個命令的返回碼$:保存程序名$*:以($.)的形式保存所有輸入的命令行參數$:以($.)的形式保存所有輸入的命令行參數$:本的$:前一個執(zhí)行的命令$:提示符 的函數分為兩種:局部函數、環(huán)境函數。 定義函數的方法為:函數名()或 “ 函數名(

9、)”,僅適用,不適用語句語句 最后一個語句返回值 無須返回值時可以寫“”或什么都不寫每個語句之后都可以加上分號,以接近語言風格。 默認情況下,所有函數內部聲明的變量都是本地全局變量,可以用去聲明一個本地 局部變量,當函數結束時該本地局部變量消亡。刪除函數的方法為:函數名三、條件測試單目條件測試有兩種等價的表示方法: 第一種: 參數 待測條件 第二種:參數 待測條件中括號和參數、條件之間一定要有空格雙目條件測試有兩種等價的表示方法: 待測條件待測條件條件測試能夠測試字符串(存在與否、 是否相等) 、 數值 (大小比較) 和文件狀態(tài),條件滿足則返回 (真) ,不滿足則返回(假)。1、 字符串測試參

10、數 單目參數: 無參數:測試字符串是否是非空串 :測試字符串是否是空串 :測試字符串是否是非空串 注:選項在引用變量時必須加上雙引號 輸出 輸出 輸出 輸出雙目參數: 或:測試兩個字符串是否相等:測試兩個字符串是否不等:按順序比較兩個字符串大小,是否左大于右 輸出 輸出、數值測試雙目參數: 等于: 不等于: 大于: 小于: 大于等于: 小于等于3、 文件測試單目參數:是否為目錄:是否可讀:是否可寫:是否可執(zhí)行:是否為普通文件:是否為鏈接文件:是否文件長度大于4、 條件測試中的邏輯操作:與:或!:非(及):括號,提高優(yōu)先級例:輸出輸出 !輸出 ! ( ! !) 輸出, (請思考其邏輯)注:與都是外部工具,非命令,所

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論