之前曾寫過一篇《linux/unix不同shell環境下陣列的處理》,在這裡簡單談談bash 和ksh下陣列的批量處理。實際中陣列在相容性要求很高的情況下不是很好的實現方式,我個人認為自己構造變數序列也不失是一種解決手段。姑且我把這種陣列的批量處理叫做「偽陣列法」。
下面的內容適用於bash和ksh,不適用於csh。
eval可以展開變數,相當於把命令放到子shell去執行,這樣的變數被替換,並當作命令再次執行。
我們可以通過num=8和eval var$num來引用var8這個變數(適用於bash和ksh,不適用於csh),注意它不同於陣列,var8,是我們手動構造的變數。
num=8eval var$num=
"var8"
#要特別注意如果在取值的時候""''中現現了空格等等特殊字元,要全部轉義。
上面的應用也常用來對資料進行操作。
關於資料的賦值:
fori in
`seq 15
` ;do eval var$=$(( $i*
2));done
#本例子中有些特殊,eval可以用let命令來替代,但是意義是不一樣,只是效果一樣。
關於數值的引用 。
fori in
`seq 15
` ;do eval echo $var$;done
#或者$var$也可以用$((var$))代替
後記:我們基至可以基於這個思想,根據需要批量定義許多陣列變數,並結合《linux/unix不同shell環境下陣列的處理》中提到的陣列的定義、刪除和陣列中元素的增加和刪除步驟,這樣在shell中處理陣列就更加得心應手了。
Javascript 偽陣列 js中的偽陣列
js中允許以鍵值対的方式來儲存屬性,並以下標的方式來訪問,我們再手動給它加上一些類似陣列的方法,便可以模擬出和陣列一樣的操作 建立乙個偽陣列 let v new object v.length 2 v 0 ok v 1 hello v a aaa v window window v name nam...
利用陣列處理批量資料
利用陣列前,我們要知道陣列是什麼 一批具有同名同屬性的資料就組成乙個陣列 array 陣列就是一組有序資料的集合 一 一維陣列 一維陣列的元素只需要用陣列名加乙個下標,就能唯一的確定 1.1 怎樣定義一維陣列 int a 10 它就表示定義了乙個整型陣列,陣列名為a,此陣列包含了10個整型元素。1....
利用陣列處理批量資料
在處理一些資料時,只用整型,浮點型等資料型別是不夠的,難以反映出資料的特點和內在聯絡,也難以進行有效的處理,所以把具有相同性質和屬性的資料組成乙個陣列。一般形式 型別說明符 陣列名 常量表示式 1 賦予不同的值用逗號分隔開 例 int a 5 2 可以只給一部分元素賦值,未被賦值的自動初始化為0 如...