




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 配電安規習題+參考答案
- 河南省上蔡一高2025年高三3月份模擬考試英語試題含解析
- 機修鉗工(設備鉗工)復習題及答案
- 浙江省寧波四中2025屆高三下學期第五次調研考試英語試題含解析
- 2025年福建省廈門二中高考考前模擬英語試題含答案
- 江蘇省連云港市海州區2024-2025學年高一下學期4月期中學業水平質量監測化學試題(原卷版+解析版)
- 紙容器食品安全包裝要求與檢測考核試卷
- 管道工程綠色施工技術創新動態與發展趨勢考核試卷
- 美容儀器電路設計與優化案例分析考核試卷
- 航空物流企業的供應鏈金融創新考核試卷
- JC01基礎心理學單科作業題匯總(含解析)
- 中考英語讀寫綜合練習
- 混凝土供應保證方案 2
- 高三生物一輪復習課件:生物變異類型的判斷與實驗探究
- 慢性阻塞性肺疾病入院記錄模板-病歷書寫
- 先簡支后連續T梁橋設計計算書
- 新疆維吾爾自治區和田地區各縣區鄉鎮行政村村莊村名居民村民委員會明細及行政區劃代碼
- 軟件測試技術課程教學大綱
- 液壓與氣壓傳動完整版課件
- 機修土坎水平梯田工程施工方案
- 勞動合同范本(1)1
評論
0/150
提交評論