參考**:
linux shell在程式設計方面比windows 批處理強大太多,無論是在迴圈、運算以及資料型別方面都是不能比較的。 下面是在陣列方面一些操作的總結。
1、陣列定義
[hadoop@master ~]$ a=(1 2 3 4 5)
[hadoop@master ~]$ echo $a
1一對括號表示是陣列,陣列元素用「空格」符號分割開。
2、陣列讀取與賦值
[hadoop@master ~]$ echo $
4用$ 可以得到陣列長度
[hadoop@master ~]$ echo $
1[hadoop@master ~]$ echo $
1 2 3 4
用$ 下標是從0開始 下標是:*或者@ 得到整個陣列內容
[hadoop@master ~]$ a[1]=100
[hadoop@master ~]$ echo $
1 100 3 4
[hadoop@master ~]$ a[3]=100
[hadoop@master ~]$ echo $
1 100 3 100
[hadoop@master ~]$ a[4]=100
[hadoop@master ~]$ echo $
1 100 3 100 100
直接通過 陣列名[下標] 就可以對其進行引用賦值,如果下標不存在,自動新增新乙個陣列元素。
[hadoop@master ~]$ a=(1 2 3 4 5)
[hadoop@master ~]$ echo $
1 2 3 4 5
[hadoop@master ~]$ unset a
[hadoop@master ~]$ echo $
[hadoop@master ~]$ a=(1 2 3 4 5)
[hadoop@master ~]$ unset a[1]
[hadoop@master ~]$ echo $
1 3 4 5
[hadoop@master ~]$ echo $
4直接通過:unset 陣列[下標] 可以清除相應的元素,不帶下標,清除整個資料。
3、特殊使用
[hadoop@master ~]$ a=(1 2 3 4 5)
[hadoop@master ~]$ echo $
1 2 3
[hadoop@master ~]$ echo $
2 3 4 5
[hadoop@master ~]$ c=($)
[hadoop@master ~]$ echo $
3 4 5
[hadoop@master ~]$ c=($)
[hadoop@master ~]$ echo $
3直接通過 $ 切片原先陣列,返回是字串,中間用「空格」分開,因此如果加上」()」,將得到切片陣列,上面例子:c 就是乙個新資料。
[hadoop@master ~]$ a=(1 2 3 4 5)
[hadoop@master ~]$ echo $
1 2 100 4 5
[hadoop@master ~]$ echo $
1 2 3 4 5
[hadoop@master ~]$ a=($)
[hadoop@master ~]$ echo $
1 2 100 4 5
呼叫方法是:$ 該操作不會改變原先陣列內容,如果需要修改,可以看上面例子即加括號賦值變成陣列,重新定義資料。
linux shell 陣列建立及使用技巧
1.陣列定義 chengmo centos5 a 1 2 3 4 5 chengmo centos5 echo a 1一對括號表示是陣列,陣列元素用 空格 符號分割開。2.陣列讀取與賦值 chengmo centos5 echo 5用 可以得到陣列長度 chengmo centos5 echo 3 ...
linux shell 陣列建立及使用技巧
linux shell在程式設計方面比windows 批處理強大太多,無論是在迴圈 運算。已經資料型別方面都是不能比較的。下面是個人在使用時候,對它在陣列方面一些操作進行的總結。1.陣列定義 chengmo centos5 a 1 2 3 4 5 chengmo centos5 echo a 1一對...
linux shell 陣列建立及使用技巧
linux shell在程式設計方面比windows 批處理強大太多,無論是在迴圈 運算。已經資料型別方面都是不能比較的。下面是個人在使用時候,對它在陣列方面一些操作進行的總結。1.陣列定義 chengmo centos5 a 1 2 3 4 5 chengmo centos5 echo a 1一對...