




已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Linux 操作系統(tǒng),Shell 腳本編程 Shell 變量,主要內(nèi)容和學(xué)習(xí)要求,shell 變量的設(shè)置、查看和清除 局部變量與作用域 環(huán)境變量及其設(shè)置 內(nèi)置命令 declare 和 printf 變量測(cè)試與賦值 位置變量與變量的間接引用 命令替換的兩種方式 整型變量的算術(shù)運(yùn)算和算術(shù)擴(kuò)展 數(shù)組變量及其引用方法,變 量,變 量,變量舉例,例:,$ 是特殊變量, 用來(lái)存儲(chǔ)當(dāng)前 shell進(jìn)程的PID,局部變量和作用域,例:,只讀變量,變量被創(chuàng)建時(shí)所處的 shell 稱為父 shell。如果在父 shell 中啟動(dòng)一個(gè)新的 shell(或進(jìn)程),則該 shell ( 或進(jìn)程 ) 被稱為子shell ( 或子進(jìn)程 )。,環(huán)境變量,環(huán)境變量就象“DNA“,可以從父親傳遞給兒子,再到孫子,但不能從子進(jìn)程傳遞給父進(jìn)程。,環(huán)境變量舉例,例:,將全局變量轉(zhuǎn)換成局部變量,列出所有全局變量,declare 常用選項(xiàng),內(nèi)置命令 declare,declare r myname=jypan unset myname declare myname=“Jianyu Pan“,declare,declare 舉例,printf 可用來(lái)按指定的格式輸出變量,printf format 輸出參數(shù)列表,printf 的打印格式與 C 語(yǔ)言中的 printf 相同,printf “%-12.5fn“ 123.456,format 以%開頭,flag,field width,precision,格式符,-:左對(duì)齊 +:輸出符號(hào) 0:空白處添0 空格:前面加一空格,字段寬度,小數(shù)點(diǎn)后輸出位數(shù),printf 命令,printf 命令的格式說(shuō)明符,format 中還可以使用,printf 命令,printf “The number is: %.2fn“ 100,printf “%-20s|%12.5f|n“ “Joy“ 10,printf “%-10d%010o%+10xn“ 20 20 20,printf “%6dt%6o“%6x“n“ 20 20 20,printf 命令舉例,例:,shell 提供一些專用的修飾符來(lái)檢查某個(gè)變量是否已被設(shè)置,然后根據(jù)測(cè)試結(jié)果指定變量的值,也稱變量置換,變量測(cè)試,color=blue newcolor=$color:-grey,unset color echo “The sky is $color:-grey today“ echo $color,echo “The sky is $color:=grey today“ echo $color,echo “The sky is $color:?error today“ echo $color,echo “The sky is $color:+blue today“ echo $color,變量測(cè)試舉例,例:,位置參量是一組特殊的內(nèi)置變量,通常被 shell 腳本用來(lái)從命令行接受參數(shù),或被函數(shù)用來(lái)保存?zhèn)鬟f給它的參數(shù)。,執(zhí)行 shell 腳本時(shí),用戶可以通過(guò)命令行向腳本傳遞信息,跟在腳本名后面的用空格隔開的每個(gè)字符串都稱為位置參量。,在腳本中使用這些參數(shù)時(shí),需通過(guò)位置參量來(lái)引用。例如: $1 表示第一個(gè)參數(shù),$2 表示第二個(gè)參數(shù),以此類推。 $9 以后需要用花括號(hào)把數(shù)字括起來(lái),如第 10 個(gè)位置參量以 $10 的方式來(lái)訪問(wèn)。,位置參量(命令行參數(shù)),位置參量列表,如何通過(guò) str2 的值來(lái)引用 str1 的值 ? ( 間接引用 ),str1=“Hello World“ str2=str1 echo $str2,echo $str2 ? echo $str2 ?,eval newstr=$str2 echo $newstr,newstr=$!str2 bash2.0以上才支持 echo $newstr echo $!str2,變量的間接引用,listpage=“l(fā)s -l | more“ echo $listpage,listpage=“l(fā)s -l | more“ eval $listpage,eval newstr=$str2,eval,eval arg1 arg2 . argN,將所有的參數(shù)連接成一個(gè)表達(dá)式,并計(jì)算或執(zhí)行該表達(dá)式,參數(shù)中的任何變量都將被展開。,命令替換的用處是將命令的輸出結(jié)果賦給一個(gè)變量,或者用命令的輸出結(jié)果代入命令所處的位置。,命令替換,Bash 變量是沒(méi)有嚴(yán)格的類型定義,本質(zhì)上 Bash 變量都是字符串,但 Bash 也允許定義整型變量,可以參加運(yùn)算與比較。,num2=1; echo $num2 num2=$num2+1; echo $num2,declare i 列出所有整型變量,未被定義為整型的變量不能直接參加算術(shù)運(yùn)算!,算術(shù)運(yùn)算,declare 定義的整型變量可以直接進(jìn)行算術(shù)運(yùn)算。,num2=1; echo $num2 let num2=4+1; echo $num2 let num2=$num2+1; echo $num2,賦值符號(hào)和運(yùn)算符兩邊不能留空格! 如果將字符串賦值給一個(gè)整型變量時(shí),則變量的值為 0 如果變量的值是字符串,則進(jìn)行算術(shù)運(yùn)算時(shí)設(shè)為 0,let num2=4 + 1 let “num2=4 + 1“ # 用引號(hào)忽略空格的特殊含義,用 let 命令進(jìn)行算術(shù)運(yùn)算時(shí),最好加雙引號(hào)。,整數(shù)運(yùn)算,未被定義為整型的變量,可用內(nèi)置命令 let 進(jìn)行算術(shù)運(yùn)算。,let 命令操作符,注:按位運(yùn)算是以二進(jìn)制形式進(jìn)行的。,a=2; let “a=2“ 用引號(hào)忽略 的特殊含義,let 命令運(yùn)算操作符,Bash 只支持整數(shù)運(yùn)算,但可以通過(guò)使用 bc 和 awk 工具來(lái)處理更復(fù)雜的運(yùn)算。,n=$(echo “scale=3; 13/2“ | bc ) echo $n,m=awk BEGINx=2.45;y=3.123; printf “%.3fn“, x*y echo $m,浮點(diǎn)數(shù)運(yùn)算,注意 $,$(),$,$() 的不同作用,算術(shù)擴(kuò)展,Bash 2.x 以上支持一維數(shù)組,下標(biāo)從 0 開始。,variable=(item1 item2 item3 . ) variablen=value,declare -a variable variable=(item1 item2 item3 . ),數(shù)組變量,數(shù)組可以用 declare 命令創(chuàng)建, 或直接給變量名加下標(biāo)來(lái)創(chuàng)建。,declare -a stu stu=(math1101 math1102 math1103) echo $stu0 # 列出stu的第一個(gè)元素 echo $stu* # 列出stu的所有元素 echo $#stu* # 給出數(shù)組stu中元素的個(gè)數(shù),數(shù)組變量舉例,相關(guān)命令小結(jié),echo $variable 或 echo $variable,unset variable,set,readonly variable,export variable=value export -n variable export -p,declare 選項(xiàng) variable=value,printf format 輸出參數(shù)列表,相關(guān)命令小結(jié),let,$
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 陜西師范大學(xué)《傳熱學(xué)與換熱器》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西管理職業(yè)學(xué)院《景觀植物基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南財(cái)經(jīng)工業(yè)職業(yè)技術(shù)學(xué)院《醫(yī)學(xué)基礎(chǔ)化學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江特殊教育職業(yè)學(xué)院《文藝演出策劃與組織》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東生態(tài)工程職業(yè)學(xué)院《表面活性劑作用原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 不要下河游泳安全教育
- 生態(tài)系統(tǒng)的穩(wěn)態(tài)教學(xué)設(shè)計(jì)
- 武漢商貿(mào)職業(yè)學(xué)院《3DSMAX效果圖與動(dòng)畫制作》2023-2024學(xué)年第二學(xué)期期末試卷
- 山西電力職業(yè)技術(shù)學(xué)院《建筑工程定額預(yù)算》2023-2024學(xué)年第二學(xué)期期末試卷
- 南京工業(yè)大學(xué)《測(cè)量平差基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 信托固定收益合同模板
- 2024年高考真題-生物(天津卷) 含解析
- T-LNEMA 013-2024 實(shí)驗(yàn)室危險(xiǎn)化學(xué)品貯存管理技術(shù)規(guī)范
- 麻辣燙合伙人合同協(xié)議書(2篇)
- 青年人要有艱苦奮斗的精神(2023年遼寧沈陽(yáng)中考語(yǔ)文試卷議論文閱讀題及答案)
- 食品安全前提方案PRP程序
- 構(gòu)建水利安全生產(chǎn)風(fēng)險(xiǎn)管控六項(xiàng)機(jī)制工作指導(dǎo)手冊(cè)
- 2024年廣東省廣州市中考數(shù)學(xué)試卷含答案
- 化糞池應(yīng)急預(yù)案方案
- 外研版英語(yǔ)四年級(jí)下冊(cè)閱讀理解練習(xí)(含答案)
- 紡織非遺:讓世界讀懂中國(guó)之美智慧樹知到期末考試答案章節(jié)答案2024年天津工業(yè)大學(xué)
評(píng)論
0/150
提交評(píng)論