版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、Shell 腳本基本編程腳本基本編程無線產(chǎn)品部 katanazhang 2009-11-09課程目標課程目標(一)(一)Linux 常用命令常用命令toppsfreevmstatiostatpstreelsoflscdpwdtimeexportdatekill/killallaliasipcsipcrmdfducrontabulimit常用命令常用命令系統(tǒng)系統(tǒng)lncatheadtailmorelessrenamewhichwhereiswhodiffgrepcutsortuniqwcjoinmkdirmvrmcplocatefindhistorysplitchmodchownsutargzip
2、gunzip正則表達式常用命令常用命令文件文件常用命令常用命令網(wǎng)絡、其它網(wǎng)絡、其它sshifconfignetstatsz/rzscppingtcpdumptelnetrsyncexpectcalclearbcman(二)(二)Shell 腳本編程腳本編程什么是什么是Shell Shell 是一個命令解釋器 Shell 也是一種編程語言 解析語法 執(zhí)行命令什么是什么是shellshell腳本?腳本? shell 是一種特殊的程序,它是用戶與Linux系統(tǒng)內(nèi)核之間的接口 它解釋運行由命令行或文件輸入的命令,從而實現(xiàn)用戶與內(nèi)核間的交互 當輸入是文件形式時,這個含有待執(zhí)行命令的文件就叫做腳本Shel
3、l 腳本的用途?腳本的用途?數(shù)據(jù)統(tǒng)計分析進程實時監(jiān)控小程序的替身Shell 腳本的特點?腳本的特點?簡單、快速不需要編譯靈活高效當要反復使用一個或連續(xù)一組命令時,可以用shell腳本很方便的將它們?nèi)繄?zhí)行添加和修改邏輯只需要簡單的保存文件不擔心性能1. 選擇一種Shell bash (bourne again shell)2. 找一個編輯器 vi/vim3. 依據(jù)語法編寫命令及規(guī)則文件 *.sh4. 增加文件可執(zhí)行權限或使用 sh 執(zhí)行 ./*.sh sh x *.shShell 腳本的建立腳本的建立注釋 以# #開頭的句子(#!除外)表示注釋,直到這一行結束 變量 Shell變量都由字符串組
4、成,不需要聲明, 可以在程序的任意位置重新對變量賦值: 賦值:變量名=值 訪問:$變量名 或者 $變量名=兩端不能有空格建議注釋Shell 腳本基本語法腳本基本語法系統(tǒng)預設變量 $0 當前程序的執(zhí)行名字 $n 當前程序的第n個參數(shù)值,n=1.9 $* 當前程序的所有參數(shù) $# 當前程序的參數(shù)個數(shù) $ 當前程序的PID $! 執(zhí)行上一個指令的PID $? 執(zhí)行上一個指令的返回值 Shell 腳本基本語法腳本基本語法數(shù)值運算 bash 只提供了整數(shù)運算,一般通過let和expr這兩個指令來實現(xiàn): 例如:let“x=$x+1” 或 x=expr $x+1 非整形運算可以通過bc來實現(xiàn) x=echo
5、scale=2;(x-y)/x|bc 在表達式中支持的操作符及其含義為: + - * / % (加,減,乘,除,取模 ) = = != & | (邏輯操作) = += -= *= /= %= = &= = |= (二元賦值操作)一種簡寫: i=$(i+1)Shell 腳本基本語法腳本基本語法流程控制if expression then fi-if expression then elif expression then else fifor $var in listdo done -while condition do done -until condition do done
6、 -break/continuecase $var incondition1);condition2);conditionn);*)default stat;esacShell 腳本基本語法腳本基本語法test 命令 if test expr; then fi -n str 字符串 str 是否不為空 -z str 字符串 str 是否為空str1 = str2 str1是否與 str2 相同str1 != str2 str1是否與 str2 不同int1 -eq int2等于int1 -le int2小于等于int1 -ge int2大于等于int1 -lt int2小于int1 -gt i
7、nt2大于int1 -ne int2不等于if expr ; then fi Shell 腳本基本語法腳本基本語法-b 是否塊文件-p 文件是否為一個命名管道-c 是否字符文件-f 是否普通文件 *-d 是否一個目錄 *-s 文件的長度是否不為零-e 文件是否存在 *-S 是否為套接字文件-r 文件是否可讀-x 文件是否可執(zhí)行,則為真-w 文件是否可寫,則為真expr1 -a expr2 如果 expr1 和 expr2 為真,則為真 expr1 -o expr2 如果 expr1 或 expr2 為真,則為真Shell 腳本基本語法腳本基本語法定義:function func_name()
8、#do operation on $n #函數(shù)外的變量是全局的#local 可指定局部變量引用:func_name $param_listadd() RET=$($2+$1) add 101 237 ; echo $RET函數(shù) Shell 腳本基本語法腳本基本語法(三)學習使用(三)學習使用 Awk基本語法 awk -F Ere -v Assignment -f ProgramFile|Program file輸入:文件/命令行模式匹配1.正則表達式+rm,?rm,n*abcde.abcde|abcrmabc$開始使用開始使用 awk 一個或多個前一個指定的字符0個或一個前一個指定的字符0個或
9、多個前一個指定的字符任意一個字符或;前后兩個字符串中的任意一個m 個 r至少 m 個 rm到n個r,含m,nabcde中任意一個字符非abcde中任意一個字符以abc開頭以abc結尾2.關系表達式 (匹配) !(不匹配 ) (大于) =(大于等于) =(等于) !=(不等于)3. 條件組合 Ere1,Ere2 指定范圍(Ere1到Ere2); () 將復雜的條件組合在一起; &,|,! 布爾組合4.BEGIN END 模式 BEGINBEGIN 在處理所有記錄前執(zhí)行,可用做初始化變量 ENDEND 在處理完所有記錄后執(zhí)行,可用做輸出處理結果開始使用開始使用awk 開始使用開始使用awk
10、 變量賦值 name = value特殊變量 $1 . $n 輸入記錄的個字段值,$0:整個記錄 FILENAME 當前輸入文件的路徑名稱 FNR 當前文件中的當前輸入記錄的個數(shù) FS 輸入字段分隔符(單個字符或正則表達式) NF 當前記錄中的字段個數(shù) NR 當前輸入記錄的個數(shù) RS 輸入記錄分隔符(缺省值是換行字符)。 OFS 輸出字段分隔符(缺省值是空格)。 ORS 輸出記錄分隔符(缺省值是換行字符)。 算術運算 +,-,*,/,%,+,-,+=,-=,*=,/=,=,%=流程控制 1) if ( Expression ) Statement else Action 2) while (
11、Expression ) Statement 3) for ( Expression ; Expression ; Expression ) Statement 4) break/continue 5) for ( Variable in Array ) Statement 6) if ( Variable in Array ) Statement 開始使用開始使用awk 7) delete Array Expression 8) delete/fdelete 9) exit使用函數(shù) function func_name(param1,param2) 調(diào)用:RET = func_name(pa
12、ram1,param2) function average ( g,n) for (i in g)sum=sum+gi avg=sum/n return avg 開始使用開始使用awk 內(nèi)建函數(shù) 1.數(shù)學函數(shù) atan2(y,x)返回 y/x 的反正切。 cos(x)返回 x 的余弦;x 是弧度。 sin(x)返回 x 的正弦;x 是弧度。 exp(x)返回 x 冪函數(shù)。 log(x)返回 x 的自然對數(shù)。 2.字符串函數(shù) sub(Ere, Repl, In) 替換第一個In中與Ere匹配的字符串 gsub(Ere, Repl, In)替換所有In中與Ere匹配的字符串 index(Strin
13、g1, String2)查詢子字符串 length (String) 返回字符串長度 substr(String, M, N) 返回M開始長度為N的子字符串開始使用開始使用awk match( String, Ere) split( String, A, Ere )將 String 分割為數(shù)組元素 An tolower( String ) 轉(zhuǎn)換為小寫字符串 toupper(String ) 轉(zhuǎn)換為大寫字符串 sprintf(Format, Expr, Expr, . . . ) 格式轉(zhuǎn)換,用法同 c 3.時間函數(shù) mktime(datespec)輸入“YYYY MM DD HH MM SS”,
14、輸出秒 strftime(format,timestamp)輸入秒,返回格式字符串systime() 返回當前時間eg. awk print strftime(%b-%a,mktime(2005 05 13 00 00 00)開始使用開始使用awk 輸出 print ExpressionList Redirection Expression ExpressionList:待輸出的字符串,由變量和常量字符串組成 Redirection:,| 輸出到文件或做為其他命令的輸入 Expression:Redirection的目的地址,文件名或其他命令 printf Format ,ExpressionList RedirectionExpression printf 語句將 ExpressionList 參數(shù)指定的表達式以 Format 參數(shù) 指定的格式寫至標準輸出,F(xiàn)ormat同c語言(除了%c) %c:當變量為數(shù)字,則輸出該數(shù)字的字符編碼 %c:當變量為字符串,則輸出該字符串的第一個字符開始使用開始使用awk 謝謝大家!無線產(chǎn)品部 coonzhang (rtx:9240 分機:7235)正則表達式(正則表達式( reg
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務供應授權收款協(xié)議
- 2024年食堂承包協(xié)議范文
- 2024企業(yè)勞動合同書樣本
- 合作開發(fā)房產(chǎn)合同文本
- 2024年商場裝修合同的范本
- 建筑項目勞務分包合同格式
- 投資股權合同格式模板
- 個人股權出售合同
- 2024合作伙伴協(xié)議范本
- 2024年消防通風承包合同協(xié)議書范本
- 一粒種子的旅行課件
- 智能取餐柜項目計劃書
- 國際法與國際爭端解決中的人權保護與難民問
- 運籌學課件-運籌學完整課件(1-8章)
- 2024年中國出版集團公司招聘筆試參考題庫含答案解析
- 學校教育促進學生的情感管理和社交技能培訓課件
- 《有趣的符號》幼兒園課件
- 城軌行車組織-聯(lián)鎖故障時的列車運行組織
- 2023年體育單招數(shù)學真題及答案
- 儲能技術在交通領域的應用
- 視網(wǎng)膜動脈阻塞治療及護理
評論
0/150
提交評論