linux shell 數組建立及提示

來源:互聯網
上載者:User

標籤:hive   返回   數組元素   html   unset   set   尋找   padding   blog   

參考網址:http://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html

linux shell在編程方面比windows 批處理強大太多,無論是在迴圈、運算以及資料類型方面都是不能比較的。 下面是在數組方面一些操作的總結。

1、數組定義

[[email protected] ~]$ a=(1 2 3 4 5)
[[email protected] ~]$ echo $a
1

一對括弧表示是數組,數組元素用“空格”符號分割開。

2、數組讀取與賦值

  • 擷取長度:

[[email protected] ~]$ echo ${#a[@]}
4

用${#數組名[@或*]} 可以得到數組長度

  • 讀取:

[[email protected] ~]$ echo ${a[0]}
1
[[email protected] ~]$ echo ${a[*]}
1 2 3 4

用${數組名[下標]} 下標是從0開始  下標是:*或者@ 得到整個數組內容

  • 賦值:

[[email protected] ~]$ a[1]=100
[[email protected] ~]$ echo ${a[*]}
1 100 3 4
[[email protected] ~]$ a[3]=100
[[email protected] ~]$ echo ${a[*]}
1 100 3 100
[[email protected] ~]$ a[4]=100
[[email protected] ~]$ echo ${a[*]}
1 100 3 100 100

直接通過 數組名[下標] 就可以對其進行引用賦值,如果下標不存在,自動添加新一個數組元素。

  • 刪除:

[[email protected] ~]$ a=(1 2 3 4 5)
[[email protected] ~]$ echo ${a[*]}
1 2 3 4 5
[[email protected] ~]$ unset a
[[email protected] ~]$ echo ${a[*]}

[[email protected] ~]$ a=(1 2 3 4 5)
[[email protected] ~]$ unset a[1]
[[email protected] ~]$ echo ${a[*]}
1 3 4 5
[[email protected] ~]$ echo ${#a[*]}
4

直接通過:unset 數組[下標] 可以清除相應的元素,不帶下標,清除整個資料。

3、特殊使用

  • 分區:

[[email protected] ~]$ a=(1 2 3 4 5)
[[email protected] ~]$ echo ${a[*]:0:3}
1 2 3
[[email protected] ~]$ echo ${a[*]:1:4}
2 3 4 5
[[email protected] ~]$ c=(${a[*]:1:4})
[[email protected] ~]$ echo ${c[*]:1:4}
3 4 5
[[email protected] ~]$ c=(${a[*]:1:2})
[[email protected] ~]$ echo ${c[*]:1:1}
3

直接通過 ${數組名[@或*]:起始位置:長度} 切片原先數組,返回是字串,中間用“空格”分開,因此如果加上”()”,將得到切片數組,上面例子:c 就是一個新資料。

  • 替換:

[[email protected] ~]$ a=(1 2 3 4 5)
[[email protected] ~]$ echo ${a[@]/3/100}
1 2 100 4 5
[[email protected] ~]$ echo ${a[@]}
1 2 3 4 5
[[email protected] ~]$ a=(${a[@]/3/100})
[[email protected] ~]$ echo ${a[@]}
1 2 100 4 5

調用方法是:${數組名[@或*]/尋找字元/替換字元} 該操作不會改變原先數組內容,如果需要修改,可以看上面例子即加括弧賦值變成數組,重新定義資料。

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.