沈陽電腦維修網,沈陽上門維修電腦服務
當前位置: 主頁 > 程序數據代碼>數組_程序數據_shell >

數組_程序數據_shell

時間:2011-12-5來源:沈陽電腦維修網 作者: 呂先生:13889116605點擊:
沈陽電腦維修,上門維修電腦
     較新的Bash版本支持一維數組.數組元素可以用符號variable[xx]來初始化.另外,腳本可以用declare-avariable語句來清楚地指定一個數組.要訪問一個數組元素,可以使用花括號來訪問,即${variable[xx]}.例1.簡單的數組用法  1#!/bin/bash  2  3  4area[11]=23  5area[13]=37  6area[51]=UFOs  7  8# 數組成員不必一定要連貫或連續的.  9 10# 數組的一部分成員允許不被初始化. 11# 數組中空缺元素是允許的. 12# 實際上,保存著稀疏數據的數組(“稀疏數組”)在電子表格處理軟件中非常有用. 13# 14 15 16echo-n"area[11]=" 17echo${area[11]}   # {大括號}是需要的. 18 19echo-n"area[13]=" 20echo${area[13]} 21 22echo"Contentsofarea[51]are${area[51]}." 23 24#沒有初始化內容的數組元素打印空值(NULL值). 25echo-n"area[43]=" 26echo${area[43]} 27echo"(area[43]unassigned)" 28 29echo 30 31#兩個數組元素的和被賦值給另一個數組元素 32area[5]=`expr${area[11]}+${area[13]}` 33echo"area[5]=area[11]+area[13]" 34echo-n"area[5]=" 35echo${area[5]} 36 37area[6]=`expr${area[11]}+${area[51]}` 38echo"area[6]=area[11]+area[51]" 39echo-n"area[6]=" 40echo${area[6]} 41#這里會失敗是因為整數和字符串相加是不允許的. 42 43echo;echo;echo 44 45#----------------------------------------------------------------- 46#另一個數組,"area2". 47#另一種指定數組元素的值的辦法... 48#array_name=(XXXYYYZZZ...) 49 50area2=(zeroonetwothreefour) 51 52echo-n"area2[0]=" 53echo${area2[0]} 54#啊哈,從0開始計數(即數組的第一個元素是[0],而不是[1]). 55 56echo-n"area2[1]=" 57echo${area2[1]}   #[1]是數組的第二個元素. 58#----------------------------------------------------------------- 59 60echo;echo;echo 61 62#----------------------------------------------- 63#第三種數組,"area3". 64#第三種指定數組元素值的辦法... 65#array_name=([xx]=XXX[yy]=YYY...) 66 67area3=([17]=seventeen[24]=twenty-four) 68 69echo-n"area3[17]=" 70echo${area3[17]} 71 72echo-n"area3[24]=" 73echo${area3[24]} 74#----------------------------------------------- 75 76exit0 Bash允許把變量當成數組來操作,即使這個變量沒有明確地被聲明為數組.     1string=abcABC123ABCabc  2echo${string[@]}              #abcABC123ABCabc  3echo${string[*]}              #abcABC123ABCabc  4echo${string[0]}              #abcABC123ABCabc  5echo${string[1]}              #沒有輸出!  6                                #為什么?  7echo${#string[@]}             #1  8                                #數組中只有一個元素.  9                                #且是這個字符串本身. 10 11#Thankyou,MichaelZick,forpointingthisout.例2.格式化一首詩  1#!/bin/bash  2#poem.sh:排印出作者喜歡的一首詩.  3  4#詩的行數(一小節詩).  5Line[1]="Idonotknowwhichtoprefer,"  6Line[2]="Thebeautyofinflections"  7Line[3]="Orthebeautyofinnuendoes,"  8Line[4]="Theblackbirdwhistling"  9Line[5]="Orjustafter." 10 11#出處. 12Attrib[1]="WallaceStevens" 13Attrib[2]="\"ThirteenWaysofLookingataBlackbird\"" 14#此詩是公眾的(版權期已經到期了). 15 16echo 17 18forindexin12345   #5行. 19do 20  printf"    %s\n""${Line[index]}" 21done 22 23forindexin12         #打印兩行出處行. 24do 25  printf"         %s\n""${Attrib[index]}" 26done 27 28echo 29 30exit0 31 32#練習: 33#-------- 34#修改這個腳本使其從一個文本文件中提取內容打印一首行. 數組元素有它們獨有的語法,并且甚至Bash命令和操作符有特殊的選項可以支持數組使用.例3.多種數組操作  1#!/bin/bash  2#array-ops.sh:數組更多有趣的用法.  3  4  5array=(zeroonetwothreefourfive)  6#元素   0  1  2   3    4   5  7  8echo${array[0]}      # zero  9echo${array:0}       # zero 10                       # 第一個元素的參數擴展, 11                       #+從位置0開始(即第一個字符). 12echo${array:1}       # ero 13                       # 第一個元素的參數擴展, 14                       #+從位置1開始(即第二個字符). 15 16echo"--------------" 17 18echo${#array[0]}     # 4 19                       # 數組第一個元素的長度. 20echo${#array}        # 4 21                       # 數組第一個元素的長度. 22                       # (另一種寫法) 23 24echo${#array[1]}     # 3 25                       # 數組第二個元素的長度. 26                       # Bash的數組是0開始索引的. 27 28echo${#array[*]}     # 6 29                       # 數組中元素的個數. 30echo${#array[@]}     # 6 31                       # 數組中元素的個數. 32 33echo"--------------" 34 35array2=([0]="firstelement"[1]="secondelement"[3]="fourthelement") 36 37echo${array2[0]}     #第一個元素 38echo${array2[1]}     #第二個元素 39echo${array2[2]}     # 40                       #因為初始化時沒有指定,因此值為空(null). 41echo${array2[3]}     #第四個元素 42 43 44exit0 大部分標準的字符串操作符可以用于數組操作.例4.用于數組的字符串操作符  1#!/bin/bash  2#array-strops.sh:用于數組的字符串操作符.  3#由MichaelZick編碼.  4#已征得作者的同意.  5  6# 一般來說,任何類似${name...}寫法的字符串操作符  7#+都能在一個數組的所有字符串元素中使用  8#+像${name[@]...}或${name[*]...}的寫法.  9 10 11arrayZ=(onetwothreefourfivefive) 12 13echo 14 15#提取尾部的子串 16echo${arrayZ[@]:0}    #onetwothreefourfivefive 17                        #所有的元素. 18 19echo${arrayZ[@]:1}    #twothreefourfivefive 20                        #在第一個元素element[0]后面的所有元素. 21 22echo${arrayZ[@]:1:2}  
上一篇:shell腳本中的文件與歸檔命令_程序數據_shell
下一篇:列表結構_程序數據_shell
查看[數組_程序數據_shell ]所有評論
發表評論
請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
用戶名: 驗證碼:
推薦內容
關于我們 服務價格 聯系我們 企業網站優化 沈陽網站建設 沈陽維修電腦
福建31选7开奖号码走势图