




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Shell編程學(xué)習(xí)總結(jié)陳 龍12021/4/1內(nèi)容nShell概述 nShell語法22021/4/1Shell概述 (特點(diǎn))oShell是解釋性的,多數(shù)高級(jí)語言是編譯性的;oShell語言與高級(jí)語言處理的對(duì)象不同;oShell與系統(tǒng)有密切的關(guān)系;oShell易編寫、調(diào)試、靈活性較強(qiáng),但速度低;oShell作為命令級(jí)語言,命令組合功能很強(qiáng)。32021/4/1Shell概述 (種類)osh - Bourne Shell,是最常用的Shell,標(biāo)準(zhǔn)shell(有時(shí)安裝成bsh)。oksh - Korn Shell,由Bourne Shell通過增加History和命令行編輯功能演變而來。osh -
2、 POSIX Shell,與Korn Shell相似,是Bourne Shell的高級(jí)版本。POSIX標(biāo)準(zhǔn)要求被安裝成sh。ocsh - C Shell,是基于C語言的Shell。obash - Born Again Shell(bash),是Korn Shell的超集,又包括不少C Shell語法。但不常用。Redhat Linux缺省的shell。otcsh - C Shell的一個(gè)版本,包括交互式的命令行編輯。ozsh - Z Shell是復(fù)雜的,但卻具有優(yōu)良特性的Shell。它能模擬Korn、C或POSIX Shell。也不常用。 42021/4/1Shell概述 (語法類型)oShe
3、ll有兩種主要語法類型:Bourne和C,彼此不兼容nBourne家族:sh ksh bash psh zshnC 家族:csh tcsh n其中: bash和 zsh在不同程度上支持 csh 的語法n本文檔提到的語法,以bsh為主52021/4/1Shell概述 (常用命令)o大致劃分為以下幾類:目錄操作與管理、文件操作與管理命令、系統(tǒng)管理與維護(hù)、用戶管理與維護(hù)、 系統(tǒng)狀態(tài)、進(jìn)程管理、通訊命令 、 其它命令 nawknbcbgncatchmodchowncpcronndate dfdiff dunechoexprnfilefind fgngrepninitnkill nln loginnls
4、mail makeman mkdir mkfs mount mvnnohupnpg pwdps pr pwd nread rmnsedsortsyncntailteenwc62021/4/1Shell語法o1. 如果Script的第一個(gè)非空白字符不是#,則它會(huì)使用Bourne Shell。 o2. 如果Script的第一個(gè)非空白字符是#時(shí),但不以#!開頭時(shí),則它會(huì)使用C Shell。 o3. 如果Script以“#!”開頭,則“#!”后面所寫的就是所使用的Shell,而且要將整個(gè)路徑名稱指出來。 o建議使用第三種方式指定Shell ,以確保所執(zhí)行的就是所要的。Bourne Shell的路徑名稱
5、為/bin/sh ,而C Shell 則為/bin/csh。72021/4/1Shell語法 (變量)o用戶自定義變量用戶自定義變量o特殊變量特殊變量o系統(tǒng)環(huán)境變量系統(tǒng)環(huán)境變量o數(shù)組變量數(shù)組變量82021/4/1Shell語法 (變量)o用戶自定義變量用戶自定義變量n用戶定義的變量由字母或下劃線打頭,由字母、數(shù)字或下劃線序列組成,并且大小寫字母意義不同。變量名長度沒有限制。n在使用變量值時(shí),要在變量名前加上前綴“$”n如果用雙引號(hào)“”將值括起來,則括起來的字符串允許出現(xiàn)空格、制表符和換行符的特殊字符,而且允許有變量替換n如果用單引號(hào)將值括起來,則括起來的字符串允許出現(xiàn)空格、制表符和換行符的特殊
6、字符,但不允許有變量替換n引用變量的值時(shí),可以用花括號(hào)將變量名稱括起來,使變量名稱與它的后續(xù)字符分隔開92021/4/1Shell語法 (變量)o特殊變量特殊變量$* 這個(gè)程序的所有參數(shù) $# 這個(gè)程序的參數(shù)個(gè)數(shù) $ 這個(gè)程序的PID $! 上一個(gè)后臺(tái)指令的PID $? 上一個(gè)指令的返回值102021/4/1Shell語法 (變量)o系統(tǒng)環(huán)境變量系統(tǒng)環(huán)境變量n /etc/profile:定義系統(tǒng)全局的工作環(huán)境,用戶主目錄下的.profile:定義該用戶的工作環(huán)境n主要環(huán)境變量有: HOME 用戶主目錄 PATH 搜索路徑 PS1 shell提示符 PWD 用戶當(dāng)前所處的目錄 MAIL 郵箱的路
7、徑 TERM 使用的終端類型112021/4/1Shell語法 (變量)o數(shù)組變量數(shù)組變量n在bash中,多個(gè)元素的設(shè)置方式如下: name=(value1 value2 valuen)array=(a b c d e) 這樣:$array0=a $array3=d 122021/4/1Shell語法 (條件控制)oIf、then、else語法if 條件1then 命令1elif 條件2then 命令2else 命令3fi例子:#!/bin/shif $# -ne 2 ; then echo Not enough parameters exit 0fiif $1 -eq $2 ; then e
8、cho $1 equals $2elif $1 -lt $2 ; then echo $1 littler than $2elif $1 -gt $2 ; then echo $1 greater than $2fi132021/4/1Shell語法 (條件控制)ocase語法 case value in pattern1) command11 command1n; pattern2) command21 command2n; patternn) commandn1 commandnn;esac例子:#! /bin/shread opcase $op in C) echo your selec
9、tion is Copy ; D) echo your selection is Delete ; B) echo your selection is Backup ; *) echo invalide selectionesac142021/4/1Shell語法 (條件控制)ofor語法 1. for variable in arg1 arg2 argndocommand command done 2. for ( 初始值; 限制值; 執(zhí)行步驟 )do程式段done例子:#!/bin/bashfor DAY in Sunday Monday Tuesday Wednesday Thursda
10、y Friday Saturdaydo echo The day is : $DAYdone152021/4/1Shell語法 (條件控制)owhile語法n只要測(cè)試條件保持為真時(shí)就繼續(xù)執(zhí)行。一旦條件為假,它就終止執(zhí)行。while commanddocommanddone例子:#! /bin/shnum=1while $num -le 10 do square=expr $num * $num echo $square num=expr $num + 1doneountil語法n只要測(cè)試條件保持為假時(shí)就繼續(xù)執(zhí)行。一旦條件為真,它就終止執(zhí)行。 until condition do command
11、 block done#! /bin/shnum=10until $num -le 0 do square=expr $num * $num echo $square num=expr $num - 1done162021/4/1Shell語法 (計(jì)算方法)shell 默認(rèn)是用來處理字符串的,所以如果你直接運(yùn)行: echo 1+1 它會(huì)直接輸出1+1,而不會(huì)輸出2。 如果需要計(jì)算表達(dá)式的值,則只需用“$(” 和 “)”將表達(dá)式括起。 echo $(1+1) 172021/4/1Shell語法 (條件控制)1.break 是用來打斷循環(huán),也就是“強(qiáng)迫結(jié)束” 循環(huán)。2.若 break 后面指定一個(gè)
12、數(shù)值 n 的話,則從里向外打斷第 n 個(gè)循環(huán).3.默認(rèn)值為 break 1 ,也就是打斷當(dāng)前的循環(huán)。在使用 break 時(shí)需要注意的是, 它與 return 及 exit 是不同的:1.break 是結(jié)束 loop 2.return 是結(jié)束 function3.exit 是結(jié)束 script/shell1.continue是強(qiáng)迫進(jìn)入下一次循環(huán)動(dòng)作。2.簡單的看成:continue 到 done 之間的句子略過而返回循環(huán)頂端.3.continue 后面也可指定一個(gè)數(shù)值 n ,以決定繼續(xù)哪一層(從里向外計(jì)算)的循環(huán),默認(rèn)值為 continue 1 ,也就是繼續(xù)當(dāng)前的循環(huán)。 182021/4/1Sh
13、ell語法 (函數(shù))o函數(shù)的定義: 函數(shù)名 () 命令序列 o函數(shù)的調(diào)用:不帶() 函數(shù)名 參數(shù)1 參數(shù)2 oshell中是不能直接獲得函數(shù)的返回值的,如果你要用函數(shù)返回值,只能用全局變量傳輸。oshell中的變量默認(rèn)都是全局的,除非你在前面加了local修飾符。oshell會(huì)把函數(shù)返回值放在$?全局變量中,你可以用$? 來取得前個(gè)函數(shù)調(diào)用的返回值。$*可以獲得函數(shù)的所有輸入?yún)?shù),$1表示第一個(gè)參數(shù),以此類推。 例子add() result=0 for n in $* do result=$($result+$n) done return $result 執(zhí)行: add 1 2 3 echo $? echo $result 輸出結(jié)果都為 6 192021/4/1Shell語法 (函數(shù))oset 函數(shù)o功能說明:設(shè)置shell。o語法:s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 員工賬號(hào)授權(quán)合同范本
- 凈水商業(yè)租賃合同范本
- 賣房臨時(shí)出租合同范例
- 北京農(nóng)村租房合同范本
- 代簽訂投標(biāo)合同范本
- 雙方購車合同范本
- 單位窗簾裝修合同范例
- 代購電纜合同范本
- 廠地購買合同范本
- 吊車購銷合同范本
- 小學(xué)生戲劇課件
- 考前沖刺攻略課件
- 2024年中煤電力有限公司所屬企業(yè)招聘29人筆試參考題庫附帶答案詳解
- DeepSeek介紹及其典型使用案例
- 2024年12月2025中央統(tǒng)戰(zhàn)部直屬事業(yè)單位應(yīng)屆高校畢業(yè)生公開招聘21人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 積極心理學(xué)視角下高職院校學(xué)生心理健康教育路徑研究
- 2025年內(nèi)蒙古建筑職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年??及鎱⒖碱}庫含答案解析
- 2024年湖北省煙草專賣局(公司)招聘筆試真題
- 2025中鐵快運(yùn)股份限公司招聘全日制普通高校畢業(yè)生35人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2024年下半年中國海油秋季校園招聘易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 《京東家法》定稿
評(píng)論
0/150
提交評(píng)論