Linux基礎 - shell數組

來源:互聯網
上載者:User

標籤:set   unset   字串類型   刪除元素   shel   賦值   inux   linu   弱類型   

摘要

數組的特性就是一組資料類型相同的集合,雖然shell是弱類型,但是我們也可以將其數組分為資料類型的數組字串類型的數組兩類
shell的數組元素之間用空格分隔開

數組操作

假設有以下兩個數組

array1=(1 2 3 4 5 6)array2=("James" "Colin" "Harry")
  • 資料變數名預設輸出
    預設直接輸出變數的話,其輸出值預設為第一個元素的值,下標從0開始
[email protected]/1 $ echo $array11[email protected]/1 $ echo $array2James
  • 擷取數組元素
    格式:${數組名[下標]},下標從0開始,下標為*@代表整個數組內容
[email protected]/1 $ echo ${array1[2]}3[email protected]/1 $ echo ${array2[1]}Colin## 擷取全部元素[email protected]/1 $ echo ${array2[*]}James Colin Harry[email protected]/1 $ echo ${array2[@]}James Colin Harry
  • 擷取數組長度
    格式:${#數組名[*或@]}
[email protected]/1 $ echo ${#array1[@]}6[email protected]/1 $ echo ${#array2[*]}3
  • 數組遍曆
    [email protected]/1 $ for item in ${array2[@]}> do>     echo "The name is ${item}"> doneThe name is JamesThe name is ColinThe name is Harry
  • 數組元素賦值

格式:數組名[下標]=值,如果下標不存在,則新增數組元素; 下標已有,則覆蓋數組元素值

[email protected]/1 $ array1[2]=18[email protected]/1 $ echo ${array1[*]}1 2 18 4 5 6[email protected]/1 $ array2[4]="Betty"[email protected]/1 $ echo ${array2[*]}James Colin Harry Betty
  • 數組切片

格式:${數組名[*或@]:起始位:長度},截取部分數組,返回字串,中間用空格分隔;將結果使用(),則得到新的切片數組

[email protected]/1 $ echo ${array2[*]}James Colin Harry Betty[email protected]/1 $ echo ${array2[*]:1:3}Colin Harry Betty[email protected]/1 $ array3=(${array2[*]:1:2})ks-devops [~] 2018-01-25 20:30:16[email protected]/1 $ echo ${array3[@]}Colin Harry
  • 數組元素替換

格式:${數組名[*或@]/尋找字元/替換字元}, 不會修改原數組;如需修改的數組,將結果使用“()”賦給新數組

[email protected]/1 $ echo ${array2[*]}James Colin Harry Betty[email protected]/1 $ echo ${array2[*]/Colin/Colin.Liu}James Colin.Liu Harry Betty[email protected]/1 $ array4=(${array2[*]/Colin/Colin.liu})[email protected]/1 $ echo ${array4[*]}James Colin.liu Harry Betty
  • 刪除元素

格式:
unset 數組,清除整個數組;
unset 數組[下標],清除單個元素

[email protected]/1 $ echo ${array2[*]}James Colin Harry Betty[email protected]/1 $ echo ${array4[*]}James Colin.liu Harry Betty[email protected]/1 $ unset array4[email protected]/1 $ unset ${array2[3]}[email protected]/1 $ echo ${array2[*]}James Colin Harry Betty[email protected]/1 $ echo ${array4[*]}[email protected]/1 $

Linux基礎 - shell數組

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.