array
標(biāo)簽(空格分隔): Shell
普通數(shù)組
#定義數(shù)組
shell> colors=("\e[;30m" "\e[;31m" "\e[;32m" "\e[;33m" "\e[;34m" "\033[35m" "\033[36m" "\033[30m" "\033[36m" "\033[40m" "\033[41m" "\033[42m""\033[43m" "\033[44m" "\033[45m" "\033[46m")
# 數(shù)組的所有元素
shell> echo ${colors[@]}
\e[;30m \e[;31m \e[;32m \e[;33m \e[;34m \033[35m \033[36m \033[30m \033[36m \033[40m \033[41m \033[42m\033[43m \033[44m \033[45m \033[46m
# 數(shù)組的元素個(gè)數(shù)
shell> echo ${#colors[@]}
15
# 數(shù)組的元素的索引
shell> echo ${!colors[@]}
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
#獲取某個(gè)元素的值
shell> echo ${colors[2]}
\e[;32m
# 從下標(biāo)為0油讯,往后2個(gè)元素的值
shell> echo ${colors[@]:0:2}
\e[;30m \e[;31m
#!/bin/bash
while read line
do
hosts[++i]=$line
done </etc/hosts
echo "host first:${hosts[1]}"
for i in ${!hosts[@]}
do
echo "$i : ${hosts[i]}"
done
#!/bin/bash
while read line
do
user=`echo $line|awk -F":" '{print $1}' `
hosts[++i]=$user
done </etc/passwd
echo "host first:${hosts[1]}"
for i in ${!hosts[@]}
do
echo "$i : ${hosts[i]}"
done
#!/bin/bash
while :
do
read -p "請(qǐng)輸入圖書名(q退出):" book
if [ "$book" = "q" -o "$book"="" ];then
break
else
books[++i]=$book
fi
done
for i in ${!books[@]}
do
echo "$i: ${books[i]}"
done
關(guān)聯(lián)數(shù)組
#!/bin/bash
declare -A sex # 定義一個(gè)關(guān)聯(lián)數(shù)組
while read line
do
gender=`echo $line|awk '{print $2}'`
let sex[$gender]++
done </root/name.text
for i in ${!sex[@]}
do
echo "$i : ${sex[$i]}"
done
#!/bin/bash
declare -A conn
states=`/usr/sbin/ss -an|grep ":80"|awk '{print $2}'`
for i in $states
do
let conn[$i]++
done
for j in ${!conn[@]}
do
echo "$j:${conn[$j]}"
done