前言
bash預設不支援二維陣列,如果我們想實現map 資料結構,可以安裝如下的方式來進行構造
預備知識
eval: 它是shell內建命令,用於字串的解析。它會首先掃瞄命令列然後進所有的置換,最終再執行該命令。
示例:
#!/bin/bash
# 1. 宣告 arr 是乙個陣列,它裡面的值由三個表示式組成
echo "配置資料匯入"
arr=(
"prt0=('/var/log/access-2021-03-12.log' 'awk \"\$3 == 200\"' 'janet' '1' '0' '304' '3' '1')"
"prt1=('/var/log/access-2021-03-13.log' 'awk \"\$3 == 200\"' 'janet' '1' '0' '304' '3' '1')"
"prt2=('/var/log/access-2021-03-15.log' 'awk \"\$3 == 200\"' 'janet' '1' '0' '304' '3' '1')"
)# 2. 遍歷 arr 中所有變數的值(也就是獲取所有的表示式),然後用 eval 進行解析
for prt in "$"
do eval $
# 列印出整個陣列的值
echo $
done
# 3. 使用解析後的資料
echo $
echo $
echo $
echo $
echo $
echo "陣列長度------------------"$
配置資料匯入
prt0=('/var/log/access-2021-03-12.log' 'awk "$3 == 200"' 'janet' '1' '0' '304' '3' '1')
prt1=('/var/log/access-2021-03-13.log' 'awk "$3 == 200"' 'janet' '1' '0' '304' '3' '1')
prt2=('/var/log/access-2021-03-15.log' 'awk "$3 == 200"' 'janet' '1' '0' '304' '3' '1')
/var/log/access-2021-03-13.log
awk "$3 == 200"
janet10
陣列長度------------------3
說明:
$ :表示獲取陣列的所有值
$ :表示獲取陣列的長度
C vector 實現二維陣列
簡介 在stl中vector這一容器,無論是在封裝程度還是記憶體管理等方面都由於傳統c 中的陣列。本文主要是關於使用vector初始化 遍歷方面的內容。其他二維的思想也是類似的。這裡簡單敘述一下c 構建二維動態陣列 int p p new int 10 注意,int 10 表示乙個有10個元素的指標...
vector實現二維陣列
用vector實現二維陣列的好處 1 陣列的越界可能會引起程式的崩潰,動態性不好,包括動態改變大小,動態申請。2 vector提供了operator函式,可以像陣列一樣的操作,而且還有邊界檢查,動態改變大小。簡單說下c 構建動態的二維陣列 int p p new int 10 注意,int 10 表...
C vector 實現二維陣列
簡介 在stl中vector這一容器,無論是在封裝程度還是記憶體管理等方面都由於傳統c 中的陣列。本文主要是關於使用vector初始化 遍歷方面的內容。其他二維的思想也是類似的。這裡簡單敘述一下c 構建二維動態陣列 int p p new int 10 注意,int 10 表示乙個有10個元素的指標...