【数组】
普通数组只能使用整数作为数组的索引值
定义数组
格式:array[key]=value
单行一列值:
array_pt=(1 2 3 4 5 6)
一组索引值:
array_pt[0]="text1"
array_pt[1]="text2"
array_pt[2]="text3"
打印数组
打印指定索引的数据元素内容:
#echo ${array_pt[0]}
text1
index=3
#echo ${array_pt[3]}
text4
打印数组中的所有值:
#echo ${array_pt[*]}或者echo ${array_pt[@]}
打印数组长度:
#echo ${#array_pt[*]}
删除数组:
unset array_pt[1] //删除数组中的第一个元素
unset array_pt //删除整个数组
数组的提取:
例如:定义了数组array=([0]=one [1]=two [2]=three [3]=four)
${array[@]:0} //除去所有元素
${array[@]:]} //除去第一个元素后的所有元素
#echo ${array[@]:0:2}
#echo ${array[@]:1:2}
子串删除:
#echo ${array[@]:0}
左边开始最短的匹配:"t*e",这将匹配到"thre"
#echo ${array[@]#t*e}
one two e four
左边开始最长的匹配,这将匹配到的"three"
#echo ${array[@]##t*e}
从字符串的结尾开始最短的匹配:
#echo ${array[@]%o}
one tw three four
从字符串的结尾开始最长的匹配:
#echo ${array[@]%%o}
one tw three four
子串替换:
#echo ${array[@]/o/m}
mne twm three fmur
没有指定替换子串,则替换匹配到的字符:
#echo ${array[@]/ /o/}
ne tw three fur
替换字符串的前端子串:
#echo ${array[@]/#o/k}
kne two three four
替换字符串的后端子串:
#echo ${array[@]/%o/k}
one twk three four
【关联数组】
关联数组的索引值可以使用任意文本。
关联数组的声明:
declare -A array_var
使用内嵌索引-值列表法将元素添加到关联数组:
array_var=([one]=one-1 [two]=two-2 [three]=three-3 [four]=four-4 [five]=five-5 [six]=six-6)
使用独立的索引-值进行赋值:
array_var[one]=one-1
array_var[two]=two-2
array_var[three]=three-3
array_var[four]=four-4
array_var[five]=five-5
array_var[six]=six-6
列出数组索引值:
#echo ${!array_var[*]}
four one five six two three
【别名】
可以用函数或alias命令实现
alias举例:
alias nginxrestart='/usr/local/nginx/sbin/nginx -s reload'
需要将该命令放到~/.bashrc文件中重启后才不会失效。
别名转义:
可以在命令之前输入反斜杠\来忽略所定义过的别名
网友评论