




已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Linux 操作系統(tǒng),Shell 腳本編程 Shell 變量,主要內(nèi)容和學(xué)習(xí)要求,shell 變量的設(shè)置、查看和清除 局部變量與作用域 環(huán)境變量及其設(shè)置 內(nèi)置命令 declare 和 printf 變量測試與賦值 位置變量與變量的間接引用 命令替換的兩種方式 整型變量的算術(shù)運(yùn)算和算術(shù)擴(kuò)展 數(shù)組變量及其引用方法,變 量,變 量,變量舉例,例:,$ 是特殊變量, 用來存儲當(dāng)前 shell進(jìn)程的PID,局部變量和作用域,例:,只讀變量,變量被創(chuàng)建時所處的 shell 稱為父 shell。如果在父 shell 中啟動一個新的 shell(或進(jìn)程),則該 shell ( 或進(jìn)程 ) 被稱為子shell ( 或子進(jìn)程 )。,環(huán)境變量,環(huán)境變量就象“DNA“,可以從父親傳遞給兒子,再到孫子,但不能從子進(jìn)程傳遞給父進(jìn)程。,環(huán)境變量舉例,例:,將全局變量轉(zhuǎn)換成局部變量,列出所有全局變量,declare 常用選項,內(nèi)置命令 declare,declare r myname=jypan unset myname declare myname=“Jianyu Pan“,declare,declare 舉例,printf 可用來按指定的格式輸出變量,printf format 輸出參數(shù)列表,printf 的打印格式與 C 語言中的 printf 相同,printf “%-12.5fn“ 123.456,format 以%開頭,flag,field width,precision,格式符,-:左對齊 +:輸出符號 0:空白處添0 空格:前面加一空格,字段寬度,小數(shù)點(diǎn)后輸出位數(shù),printf 命令,printf 命令的格式說明符,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 提供一些專用的修飾符來檢查某個變量是否已被設(shè)置,然后根據(jù)測試結(jié)果指定變量的值,也稱變量置換,變量測試,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,變量測試舉例,例:,位置參量是一組特殊的內(nèi)置變量,通常被 shell 腳本用來從命令行接受參數(shù),或被函數(shù)用來保存?zhèn)鬟f給它的參數(shù)。,執(zhí)行 shell 腳本時,用戶可以通過命令行向腳本傳遞信息,跟在腳本名后面的用空格隔開的每個字符串都稱為位置參量。,在腳本中使用這些參數(shù)時,需通過位置參量來引用。例如: $1 表示第一個參數(shù),$2 表示第二個參數(shù),以此類推。 $9 以后需要用花括號把數(shù)字括起來,如第 10 個位置參量以 $10 的方式來訪問。,位置參量(命令行參數(shù)),位置參量列表,如何通過 str2 的值來引用 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ù)連接成一個表達(dá)式,并計算或執(zhí)行該表達(dá)式,參數(shù)中的任何變量都將被展開。,命令替換的用處是將命令的輸出結(jié)果賦給一個變量,或者用命令的輸出結(jié)果代入命令所處的位置。,命令替換,Bash 變量是沒有嚴(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,賦值符號和運(yùn)算符兩邊不能留空格! 如果將字符串賦值給一個整型變量時,則變量的值為 0 如果變量的值是字符串,則進(jìn)行算術(shù)運(yùn)算時設(shè)為 0,let num2=4 + 1 let “num2=4 + 1“ # 用引號忽略空格的特殊含義,用 let 命令進(jìn)行算術(shù)運(yùn)算時,最好加雙引號。,整數(shù)運(yùn)算,未被定義為整型的變量,可用內(nèi)置命令 let 進(jìn)行算術(shù)運(yùn)算。,let 命令操作符,注:按位運(yùn)算是以二進(jìn)制形式進(jìn)行的。,a=2; let “a=2“ 用引號忽略 的特殊含義,let 命令運(yùn)算操作符,Bash 只支持整數(shù)運(yùn)算,但可以通過使用 bc 和 awk 工具來處理更復(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)來創(chuàng)建。,declare -a stu stu=(math1101 math1102 math1103) echo $stu0 # 列出stu的第一個元素 echo $stu* # 列出stu的所有元素 echo $#stu* # 給出數(shù)組stu中元素的個數(shù),數(shù)組變量舉例,相關(guān)命令小結(jié),echo $variable 或 echo $variable,unset variable,set,readonly variable,export variable=value export -n variable export -p,declare 選項 variable=value,printf format 輸出參數(shù)列表,相關(guān)命令小結(jié),let,$
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貸款償還方式選擇協(xié)議
- 娘家運(yùn)動苗木采購合同
- 農(nóng)業(yè)科技養(yǎng)殖技術(shù)合作協(xié)議
- 酒吧、KTV門市租賃合同
- 苗木訂單采購合同
- 2025至2030中國單件式烘干機(jī)行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 二手安置房買賣合同
- 2025至2030中國會展旅游行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國烏皮萊克斯行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國三維動畫仿真軟件行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 生產(chǎn)車間關(guān)鍵崗位培訓(xùn)
- 精益六西格瑪黃帶認(rèn)定考試題庫及答案
- 24秋國開《西方行政學(xué)說》形考任務(wù)1學(xué)習(xí)活動(二)答案(第2套)
- 2019年湖北宜昌中考滿分作文《我向往麥穗一樣的人生》
- 車輛保險服務(wù)招投標(biāo)書范本
- GB 11564-2024機(jī)動車回復(fù)反射裝置
- 《牛津英漢詞典》全集完整版TXT電子書
- (資料)某縣二次供水改造可行性研究報告
- 2024年【每周一測】第四周語文五年級下冊基礎(chǔ)練習(xí)題(含答案)
- 電氣自動化工程師自學(xué)寶典閱讀筆記
- 劇本殺店買賣協(xié)議
評論
0/150
提交評論