1.可遍历数据类型

 列表:

 (1){1..10}

 (2)$(seq 1 10),$(seq 1 2 10)

 (3)cat等命令返回值

 (4)globbing匹配值,/etc/* 

 数组:

 (1)声明:

 declare -a age=(0 1 2)声明索引数组,不声明默认为索引数组

 declare -A user=([name]=a [age]=10)声明关联数组,不声明  无法正常获取值

 (2)赋值:使用索引或key直接赋值,索引数组还可嵌套列表赋值  num= ($(seq 1 2 10))

 (3)引用:${age[0]},${user[name]},${age[*]}引用全部值

 (4)长度:${#age[*]}

 (5)追加:索引数组可写为${age[${#age[*]}]}=3 

 (6)切片:${age[*]:起始索引值:取值个数}

2.循环

 for: 

 (1)for i in {1..10};do

    ...

   done

 (2)for ((i=1;i<=10;i++));do

    ...

   done 

 while:

 (1)while true;do

    ...

   done

 (2)while read i;do  //特殊用法,读取文件每行

    echo $i

   done</path/file  

3.函数

 (1)声明: function fn(){}

 (2)调用: fn

 (3)传参数和获取参数:fn agrs,用$1..$n在函数中获取