1
如何在unix shell腳本中實現多維數組? 該解決方案不僅適用於bash,而且適用於其他unix shell。如何在unix shell腳本中定義多維數組
對於bash,有一個類似的問題。我在那裏發佈了相同的答案,但我想以更通用的方式重新提出問題,這樣不僅用戶正在尋找bash解決方案可以得到答案。
如何在unix shell腳本中實現多維數組? 該解決方案不僅適用於bash,而且適用於其他unix shell。如何在unix shell腳本中定義多維數組
對於bash,有一個類似的問題。我在那裏發佈了相同的答案,但我想以更通用的方式重新提出問題,這樣不僅用戶正在尋找bash解決方案可以得到答案。
獨立於正在使用的shell(sh,ksh,bash,...),以下方法對於n維數組(樣本涵蓋2維數組)非常有效。
在示例中,行分隔符(第1維)是空格字符。爲了引入字段分隔符(第二維),使用標準unix工具tr
。用於附加尺寸的附加分隔符可以以相同的方式使用。
當然,這種方法的性能不是很好,但是如果性能是不是一個標準,這種做法是非常通用的,可以解決很多問題:
array2d="1.1:1.2:1.3 2.1:2.2 3.1:3.2:3.3:3.4"
function process2ndDimension {
for dimension2 in $*
do
echo -n $dimension2 " "
done
echo
}
function process1stDimension {
for dimension1 in $array2d
do
process2ndDimension `echo $dimension1 | tr : " "`
done
}
process1stDimension
該樣品的輸出是這樣的:
1.1 1.2 1.3
2.1 2.2
3.1 3.2 3.3 3.4
@EdgarAroutiounian FAQ [明確鼓勵](http://stackoverflow.com/help/self-answer)這樣的自我回答問題。 – chepner