shell bash---类似数组类型
0 Preface/Foreword
C/C++,Python,Java等编程语言,都含有数组类型,那么shell脚本是不是也有类似的语法呢?
1 类似数组类型
1.1 ()类似数组类型
#! /bin/bash
echo "Welcome to bash world!"
animals=('cat' 'dog' 'horse' 'mouse')
#get a specified element
echo ${animals[0]}
#list all elements
echo ${animals[*]}
#list all elements
echo ${animals[@]}
#get the lenght of array
echo ${#animals[@]}
echo ${#animals[*]}
echo =================================
echo $#
echo $*
echo $@
echo ================================
echo $0
echo $1
echo $2
echo $?
echo =================================
echo $$
echo $!
运行结果如下所示:
分析:animals变量
- 是一个数组类型,通过()来表示
- 里面的元素只能是字符串
- 字符串自己用空格分隔
1.1.1 获取数组中元素
通过下标index获取。
- 第一个元素从下标0开始。
- index越界了,不会报错,只是该变量为空。
- 如果下标为空,则会报错。(bad substitution)
1.1.2 获取数组元素列表
${arrayName[*]}
或者
${arrayName[@]}
1.1.3 获取数组长度
${#arrayName[@]}
或者
${#arrayName[*]}
1.2 遍历数组(for循环)
#! /bin/bash
echo "Welcome to bash world!"
animals=('cat' 'dog' 'horse' 'mouse')
echo "retrieve an array..."
count=0
for i in ${animals[*]}
do
let count+=1
echo "count is:"$count
done
运行结果: