1. 程式人生 > >shell陣列

shell陣列

陣列

  • 普通陣列
    只能使用整數作為陣列索引
    • 1.定義陣列
      一次賦一個值:陣列名[下標]=變數值,例,array1[0]=pear
      一次賦多個值:array2=(tom jack alice)
             array5=(1 2 3 4 5 6 7 “linux shell” [20]=saltstack)
    • 2.訪問陣列
      echo ${array1[0]} 訪問陣列中的第一個元數
      echo ${array1[@]} 訪問陣列中所有元數 等同於 echo ${array1[*]}
      echo ${#array1[@]} 統計陣列元素的個數
      echo ${!array2[@]} 獲取陣列元素的索引
      echo ${array1[@]:1} 從陣列下標1開始
      echo ${array1[@]:1:2} 從陣列下標1開始,訪問兩個元素
  • 關聯陣列
    可以使用字串作為陣列索引

    • 1.定義陣列
      使用前先宣告關聯陣列 
      一次賦一個值:declare -A ass_array1;ass_array1[index1]=pear
      一次賦多個值:declare -A ass_array2;
             ass_array2=([index1]=tom
                   [index2]=jack
                   [index3]=alice
                   [index4]=’bash shell’)
    • 2.訪問陣列
      echo ${ass_array2[index2]} 訪問陣列中的第二個元數
      echo ${ass_array2[@]} 訪問陣列中所有元數 等同於 echo ${array1[*]}
      echo ${#ass_array2[@]} 獲得陣列元數的個數
      echo ${!ass_array2[@]} 獲得陣列元數的索引
  • 陣列和迴圈

    1:通過迴圈定義和顯示陣列
    
#!/bin/bash
#迴圈讀取檔案,定義陣列
while read line
do
#host:陣列名
#[++i]:索引遞增,++i是1開始,i++是0開始。
#$line:值,即檔案中的內容
        hosts[++i]=$line
done < /etc/hosts
#輸出索引第一行
echo “陣列hosts first:${hosts[1]}echo ""

#輸出索引每一行
for i in ${!hosts[@]}
do
echo "$i  :   ${hosts[$i]}"
done
2:通過陣列統計資料
[root@localhost ~]# vim sex.txt
jack m
alice f
tom m
#!/bin/bash
#count sex
#2020
#宣告關聯陣列
declare -A sex
#讀取性別檔案
while read line
do
#取出性別資訊
        type=`echo $line|awk '{print $2}'`
#let計算賦值:陣列sex索引type值+1
        let sex[$type]++
done < sex.txt
#輸出結果
for i in ${!sex[@]}
do
        echo "$i : ${sex[$i]}"
done

相關推薦

shell 指令碼的一些常用命令 set, export, shell陣列,esac, tee,time

1. set Linux set命令用來設定 shell ,設定使用shell的執行方式。 引數說明 -a  標示已修改的變數,以供輸出至環境變數。 -b  使被中止的後臺程式立刻回報執行狀態。 -C  轉向所產生的檔案無法覆蓋已存在的檔案。 -d  She

shell陣列程式設計

參考連線 https://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html linux shell 陣列建立及使用技巧linux shell在程式設計方面比windows 批處理強大太多,無論是在迴圈、運算。已經資料型別方面都是不能比較的。 下

Shell陣列和函式

陣列中可以存放多個值。Bash Shell 只支援一維陣列(不支援多維陣列)。 Shell 陣列用括號來表示,元素用"空格"符號分割開,語法格式如下: array_name=(value1 ... valuen) 2.陣列常用操作 1)定義一個數組: myarray=(1 2 3 4 5);

shell 陣列遍歷的3種方法

                        shell陣列的

shell 陣列例項

ary=(1 2 3) a=2 if [[ "${ary[@]}" =~ "$a" ]] ; then     echo "a in ary" else     echo "a not in ary" fi   獲取陣列長度echo

03.shell陣列

1.Shell 陣列 bash支援一維陣列(不支援多維陣列),並且沒有限定陣列的大小。 類似與C語言,陣列元素的下標由0開始編號。獲取陣列中的元素要利用下標,下標可以是整數或算術表示式,其值應大於或等於0。 1.1定義陣列 在Shell中,用括號來表示陣列,陣列元素用"空格"符號分割開。定義陣列的一般

【Linux】shell陣列

一、概念     shell陣列就是一個元素集合,它把有限個元素用一個名字來命名,然後用編號對他們分割槽。這個名字稱為陣列名,用於區分不同內容的編號稱為陣列的下標。 二、shell陣列的定義與增刪改查 1.shell陣列的定義 方法1:元素之間使用空格分隔,用小括號將元素括起來

【Linux】Shell - 陣列練習

# 定義陣列 array=( aa bb cc dd)# 輸出陣列所有元素,或者 ${array[@]} echo ${array[*]}   aa bb cc dd# 輸出元素個數 echo ${#array[*]}  # 輸出第一個

【Linux】Shell - 陣列操作

Shell中資料型別不多,比如說字串,數字型別,陣列。 陣列是其中比較重要的一種,其重要應用場景,可以求陣列長度,元素長度,遍歷其元素,元素切片,替換,刪除等操作,使用非常方便。 Shell中的陣列不像JAVA/C,只能是一維陣列,沒有二維陣列;陣列元素大小無約束,也無需先定義陣

[轉]linux shell 陣列建立及使用技巧

linux shell在程式設計方面比windows 批處理強大太多,無論是在迴圈、運算。已經資料型別方面都是不能比較的。 下面是個人在使用時候,對它在陣列方面一些操作進行的總結。 1.陣列定義 [[email protected] ~]$ a=(1 2 3 4 5)[[emai

shell陣列和變數的應用

專案中有一個需求:使用者選擇test1,test2,…test10之間的一個變數(env),我用這個變數作為docker的名稱去建立一個新的容器。其中埠號也是之前預訂好的,需要指定兩個,一個是ssh22埠的,一個是JAVA專案的,比如30001。 新起一個docker的命令如下: docke

shell陣列

陣列 普通陣列 只能使用整數作為陣列索引 1.定義陣列 一次賦一個值:陣列名[下標]=變數值,例,array1[0]=pear 一次賦多個值:array2=(tom jack alice)

shell陣列使用技巧

1.陣列定義   [[email protected] ~]$ a=(1 2 3 4 5) [[email protected] ~]$ echo $a   一對括號表示是陣列,陣列元素用“空格”符號分割開。   2.陣列讀取與賦值 得到長度: [[em

shell陣列處理

linux shell在程式設計方面比windows 批處理強大太多,無論是在迴圈、運算。已經資料型別方面都是不能比較的。 下面是個人在使用時候,對它在陣列方面一些操作進行的總結。 1.陣列定義 [[email protected] ~]$ a=(1 2 3

shell陣列操作

陣列定義 #定義陣列 array_name=(value0 value1 value2) array_name[0]=value0 array_name[1]=v

shell 陣列 迴圈

#!/bin/bash array=(1 2 3 4 5) #以括號括起為陣列 中間是空格 for num in "${array[@]}" #以這種for列印陣列 do echo $num do

shell重溫---基礎篇(shell陣列&陣列操作)

    上篇部落格已經分析重溫了shell的執行方式以及其中的變數還有字串,之後按照套路就是陣列方面了,廢話不多說,直接進入正題哈。(小白筆記,各位看官勿噴。。。)    bash shell呢,支援一位陣列,不支援多維陣列,並且沒有限定陣列的大小,類似於C語言,元素的下標由

shell陣列和declare用法

用途說明 declare命令是bash的一個內建命令,它可以用來宣告shell變數,設定變數的屬性(Declare variables and/or give them attributes)。該命令也可以寫作typeset。雖然人們很少使用這個命令,如果知道了它的一些用

linux shell 陣列的長度計算、修改、迴圈輸出等操作

在shell中,陣列變數的複製有兩種方法: (1) name = (value1 ... valuen)此時下標從0開始 (2) name[index] = value example: #1/bin/sh #arrayTest name=(yunix yhx yfj)

Shell指令碼學習13】Shell陣列shell陣列的定義、陣列長度

Shell在程式設計方面比Windows批處理強大很多,無論是在迴圈、運算。 bash支援一維陣列(不支援多維陣列),並且沒有限定陣列的大小。類似與C語言,陣列元素的下標由0開始編號。獲取陣列中的元素要利用下標,下標可以是整數或算術表示式,其值應大於或等於0。 定義陣列