一、shell数组定义和增删改查

1.1定义

法一:

array=( value1 value2 value3)#小括号将数组内容赋值给数组变量,空格分隔开。
root@ubuntu10112:/opt/shelltest# array=(value1 value2 value3) 
value2: command not found
root@ubuntu10112:/opt/shelltest# array=(1 5 ss 3)
root@ubuntu10112:/opt/shelltest# echo ${array[*]} #输出上面定义的数组所有元素。
1 5 ss 3
root@ubuntu10112:/opt/shelltest# 

法二:

root@ubuntu10112:/opt/shelltest# array=([0]=nihao [1]=ma [2]=wo) #采用键值对形式赋值
root@ubuntu10112:/opt/shelltest# echo ${array[*]}               
nihao ma wo
root@ubuntu10112:/opt/shelltest#  echo ${array[2]}   
wo

法三:

root@ubuntu10112:/opt/shelltest# array[0]=a
root@ubuntu10112:/opt/shelltest# array[1]=p
root@ubuntu10112:/opt/shelltest# array[2]=p
root@ubuntu10112:/opt/shelltest# array[3]=l
root@ubuntu10112:/opt/shelltest# array[4]=e
root@ubuntu10112:/opt/shelltest# echo ${array[*]}
a p p l e
root@ubuntu10112:/opt/shelltest# 

法四:

root@ubuntu10112:/opt/shelltest# array=($(ls))     #array=($(命令))
root@ubuntu10112:/opt/shelltest# echo ${array[*]}
case.sh echovar.sh list.sh lowlist.sh menu.sh rename select.sh
root@ubuntu10112:/opt/shelltest# 
root@ubuntu10112:/opt/shelltest# array=(`ls`)  #array=(`命令`) 
root@ubuntu10112:/opt/shelltest# echo ${array[*]}
case.sh echovar.sh list.sh lowlist.sh menu.sh rename select.sh
root@ubuntu10112:/opt/shelltest# 

1.2数组打印

echo ${array[下标]}
echo ${array[@]}    echo ${array[*]} #可以打印全部元素

1.3 数组删除

数组本质是变量,通过unset 数组[下标] 清除数组元素。

1.3 数组元素截取和替换

与变量子串替换一样,具体可以参考变量子串操作。

root@ubuntu10112:/opt/shelltest# echo ${array[@]:1:3}
echovar.sh list.sh lowlist.sh
root@ubuntu10112:/opt/shelltest# echo ${array[*]}
case.sh echovar.sh list.sh lowlist.sh menu.sh rename select.sh
root@ubuntu10112:/opt/shelltest# 
root@ubuntu10112:/opt/shelltest# echo ${array[@]/case/Case}
Case.sh echovar.sh list.sh lowlist.sh menu.sh rename select.sh
root@ubuntu10112:/opt/shelltest#