linux shell 數組建立及使用技巧_第1頁
linux shell 數組建立及使用技巧_第2頁
linux shell 數組建立及使用技巧_第3頁
linux shell 數組建立及使用技巧_第4頁
linux shell 數組建立及使用技巧_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、chengmocentos5 $ a=(1 2 3 4 5chengmocentos5 $ echo $a1一對括號表示是數組,數組元素用 “ 空格 ” 符號分割開。2. 數組讀取與賦值得到長度:chengmocentos5 $ echo $#a5用 $#數組名 或 * 可以得到數組長度讀取:chengmocentos5 $ echo $a23chengmocentos5 $ echo $a*1 2 3 4 5用 $數組名 下標 下標是從 0開始 下標是:*或者 得到整個數組內容賦值 :chengmocentos5 $ a1=100chengmocentos5 $ echo $a*1 100

2、3 4 5chengmocentos5 $ a5=100chengmocentos5 $ echo $a*1 100 3 4 5 100直接通過 數組名 下標 就可以對其進行引用賦值, 如果下標不存在, 自動添加新一個數組元素 刪除 :chengmocentos5 $ a=(1 2 3 4 5chengmocentos5 $ unset achengmocentos5 $ echo $a*chengmocentos5 $ a=(1 2 3 4 5chengmocentos5 $ unset a1chengmocentos5 $ echo $a*1 3 4 5chengmocentos5 $ e

3、cho $#a*4直接通過:unset 數組 下標 可以清除相應的元素,不帶下標,清除整個數據。3. 特殊使用分片 :chengmocentos5 $ a=(1 2 3 4 5chengmocentos5 $ echo $a:0:31 2 3chengmocentos5 $ echo $a:1:42 3 4 5chengmocentos5 $ c=($a:1:4chengmocentos5 $ echo $#c4chengmocentos5 $ echo $c*2 3 4 5直接通過 $數組名 或 *:起始位置 :長度 切片原先數組,返回是字符串,中間用 “ 空格 ” 分 開,因此如果加上 ”

4、(” ,將得到切片數組,上面例子:c 就是一個新數據。替換 :chengmocentos5 $ a=(1 2 3 4 5chengmocentos5 $ echo $a/3/1001 2 100 4 5chengmocentos5 $ echo $a1 2 3 4 5chengmocentos5 $ a=($a/3/100chengmocentos5 $ echo $a1 2 100 4 5調用方法是:$數組名 或 */查找字符 /替換字符 該操作不會改變原先數組內容, 如果需要 修改,可以看上面例子,重新定義數據。從上面講到的,大家可以發現 linux shell 的數組已經很強大了, 常見

5、的操作已經綽綽有余了 linux shell 動態生成 數組系列 seq 使用技巧2010-12-30 16:36:22 閱讀 5 評論 0 字號:大中小 訂閱如果對 linux shell 數組不是很熟悉的話, 請看上一篇文章:linux shell 數組建立及使用技巧 , 這篇文章主要講是動態生成數組系列。 方法應該很多, 我這里主要以一個求和計算的題目為 例進行分析。題目:請用 linux shell 寫一段腳本,實現從 1.1000中所有偶數的和值。方法一:通過 while 循環得到需要的結果:start=1;total=0;while $start -le 1000 ;do $($s

6、tart%2 = 0 &&total=$($total+$start;start=$($start+1;done;echo $total;chengmocentos5 $ start=1;total=0;while $start -le1000 ;do $($start%2 =0 &&total=$($total+$start; start=$($start+1;done;echo $total; 250500以上運行結果是:249500, 在 linux shell 中, ”;” 作為命令行分隔符。如果大家對于 $( 運 算符號不是很理解,可以查看:linux

7、 shell 實現 四則運算(整數及浮點 簡單方法 ,如 果對于: 符號,可以參考另外一篇文章 linux shell 邏輯運算符、邏輯表達式詳解 。方法二:通過 for 循環得到結果:start=0;total=0;for i in $(seq $start 2 1000; dototal=$($total+$i;done;echo $total;chengmocentos5 $ start=0;total=0;for i in $(seq $start 2 1000;do total=$($total+$i;done;echo $total;250500上面語句已經代碼方面明顯優于方法一,

8、而且性能方面表現也很好。下面比較就可以發現:比較性能:chengmocentos5 $ time (start=0;total=0;for i in $(seq $start 2 1000; do total=$($total+$i;done;echo $total; 250500real 0m0.016suser 0m0.012ssys 0m0.003schengmocentos5 $ time (start=1;total=0;while $start -le1000 ;do $($start%2 =0 &&total=$($total+$start; start=$($s

9、tart+1;done;echo $total; 250500real 0m0.073suser 0m0.069ssys 0m0.004s方法一耗時 是方法二的 6倍!seq 使用:seq OPTION. LASTseq OPTION. FIRST LASTseq OPTION. FIRST INCREMENT LASTchengmocentos5 $ seq 1000 起始默認是 1,間隔默認也是 1chengmocentos5 $seq 2 1000 間隔默認是 1chengmocentos5 $seq 1 3 10 ' 從 1開始,到 10 間隔為 3 結果是:1 4 7 10 說明:默認間隔是 “ 空格 ” 如果想換成其它的可以帶參數:-schengmocentos5 $seq -s'#' 1 3 101#4#7#10應用技巧:生成連續數組系列:chengmocentos5 $ a=($(seq 1 3 10chengmocentos5 $ echo $a14chengmocento

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論