Shell数组
数组定义
定义数组需要用括号把元素包裹起来。
colors=(red green blue black white)
# 打印整个数组
echo ${colors[*]} # red green blue black white
echo ${colors[@]} # red green blue black white
基本操作
# 有两种方法获取数组长度
echo ${#colors[@]} # 5
echo ${#colors[*]} # 5
遍历数组
for e in ${colors[*]};do
echo $e
done
或
for((i=0;i<${#colors[*]};i++));do
echo ${colors[i]}
done
读写数组
echo ${colors[0]} # red
colors[0]=RED
echo ${colors[0]} # RED
移除元素
unset colors[1]
echo ${colors[*]} # red blue black white
echo ${#colors[*]} # 4
切片
切片不影响原数组
echo ${colors[*]:1:3} # green blue black
# 获取切片得到的新数组
c=(${colors[*]:1:3})
echo ${c[*]} # green blue black
替换
替换也不影响原数组
echo ${colors[*]/e/E} # rEd grEen bluE black whitE
字符串转换为数组
使用()
操作符和IFS
指定分隔符
IFS=";"
str="a;b;c;d;e"
arr=($str)
echo ${arr[*]} # a b c d e