赋值

Shell 的变量是无类型的,但是有数组的用法

赋值

name = (value1 ... valuen)

$ A=(a b c def)
$ echo $A
a
$ echo $A[2]
a[2]
$ echo ${A[2]}  # 取出第三个(0开始)元素
c
$ echo ${A[@]}     # 取全部元素
a b c def
$ echo ${#A[@]}  # 取出元素的个数
4
$ echo ${#A[3]}  # 取出元素的长度("def"长为3)
3

此时下标从0开始

name[index] = value

$ name[0]=debian
$ name[1]=redhat
$ name[2]=gentoo
$ name[3]=lfs
$ name[4]=ylinux
$ echo ${name[@]}
debian redhat gentoo lfs ylinux
$ echo ${#name[@]}
5
$ echo ${#name}
6

数组下标的范围没有任何限制,同时也不必使用连续的分量.

示例

...
      --repository|--repo)
        if [ -z "$ARG" ] ; then
          echo_help
          cleanup_and_exit
        fi
        # ${#repos[@]} 值为当前数组元素个数
        # 这里的作用是可以使用多个 --repository|--repo 选项指定多个 repos
        repos[${#repos[@]}]="$PARAM";
        repos[${#repos[@]}]="$ARG";
        shift
      ;;
...