20.18 shell中的數組

shell中的數組

  • shell中的數組1
    • 定義數組 a=(1 2 3 4 5); echo ${a[@]}
    • echo ${#a[@]} 獲取數組的元素個數
    • echo ${a[2]} 讀取第三個元素,數組從0開始
    • echo ${a[*]} 等同於 ${a[@]} 顯示整個數組
    • 數組賦值
    • a[1]=100; echo ${a[@]}
    • a[5]=2; echo ${a[@]} 若是下標不存在則會自動添加一個元素
    • 數組的刪除
    • uset a; unset a[1]
  • shell中的數組2
    • 數組分片
    • a=(seq 1 5)
    • echo ${a[@]:0:3} 從第一個元素開始,截取3個
    • echo ${a[@]:1:4} 從第二個元素開始,截取4個
    • echo ${a[@]:0-3:2} 從倒數第3個元素開始,截取2個
    • 數組替換
    • echo ${a[@]/3/100}
    • a=(${a[@]/3/100})

shell中的數組

  1. 數組,就是一串字符創或者一串數字,造成的一個變量,把這個變量叫作數組
  • echo ${b[*]} 等同於 ${b[@]} 顯示整個數組
    • 理解爲 打印 $a 裏面的全部東西, @、*都表示全部內容
[root@hf-01 shell]# b=(1 2 3)    定義數組
[root@hf-01 shell]# echo ${b[@]}        表示數組
1 2 3
[root@hf-01 shell]# echo ${b[*]}         表示數組
1 2 3
  1. 查看某一個元素的值
  • 特殊性:方括號裏面的數字表示它的下標,意思就是說這個元素是第幾個
    • 第0個就表示第一個,第一個就表示第二個.....(數組就是從0 開始的)
[root@hf-01 shell]# echo ${b[1]}
2
[root@hf-01 shell]# echo ${b[2]}
3
[root@hf-01 shell]# echo ${b[0]}
1
[root@hf-01 shell]#
  1. 獲取數組元素的個數
[root@hf-01 shell]# echo ${#b[@]}
3
[root@hf-01 shell]#

數組賦值

  • 元素的賦值 或更改覆蓋
[root@hf-01 shell]# b[3]=a
[root@hf-01 shell]# echo ${b[*]}
1 2 3 a
[root@hf-01 shell]# b[3]=100
[root@hf-01 shell]# echo ${b[*]}
1 2 3 100
[root@hf-01 shell]#
  • echo ${b[@]}
    • 若是下標不存在則會自動添加一個元素

數組的刪除

[root@hf-01 shell]# unset b[3]
[root@hf-01 shell]# echo ${b[*]}
1 2 3
[root@hf-01 shell]# unset b        把數組的值清空
[root@hf-01 shell]# echo ${b[*]}

[root@hf-01 shell]#

數組的分片

[root@hf-01 shell]# 
[root@hf-01 shell]# a=(`seq 1 10`)
[root@hf-01 shell]# echo ${a[*]}
1 2 3 4 5 6 7 8 9 10
[root@hf-01 shell]#
  • 截取數字4到數字7,這四個數字
3表示從3開始,4表示截取4個
[root@hf-01 shell]# echo ${a[*]:3:4}
4 5 6 7
[root@hf-01 shell]#
  • 從倒數第三個開始,截取2個
    • 必須寫成 0-3
[root@hf-01 shell]# echo ${a[*]:0-3:2}
8 9
[root@hf-01 shell]#

數組的替換

  • 數組的替換和sed替換相似
  • 把數組的8替換成6
[root@hf-01 shell]# echo ${a[*]}
1 2 3 4 5 6 7 8 9 10
[root@hf-01 shell]# echo ${a[*]/8/6}
1 2 3 4 5 6 7 6 9 10
[root@hf-01 shell]#
  • 直接賦值(須要用括號括起來)
[root@hf-01 shell]# a=(${a[*]/8/6})
[root@hf-01 shell]# echo ${a[*]}
1 2 3 4 5 6 7 6 9 10
[root@hf-01 shell]#
相關文章
相關標籤/搜索