1.数组定义:
#array=(value1 value2 value3)
#array=(1 2 3)
#array=([1]=one [2]=two [3]=three)
#array=($(ls *.txt)) #<==统计文件数量
#touch {1..5}.txt #<==批量创建文件
2.数组的打印及输出
#array=(1 2 3)
#echo ${array[*]} #<==全部打印
#echo ${array[1]}
#echo ${#array[*]} #<==统计数组数量
3.数值赋值:
#array[3]=demo
4.数组删除(unset):
#array=(1 2 3)
#unset array[1]
#echo ${array[*]}
5.数组内容的截取和替换
截取
#array=(1 2 3 4 5)
#echo ${array[@]:1:3} #<==从下标1的元素开始截取,共取3个数组元素
#array=({a..z})
替换
#array=(1 2 3 4 5 )
#echo ${array[@]/1/b} #<==数组中的1替换b
===================================================
实战:
1.通过普通for循环语句打印数组元素
#!/bin/bash
array=(1 2 3 4 5)
for i in ${array[*]}
do
echo $i
done
===================================================
2.使用while循环语句打印数组元素
#!/bin/bash
array=(1 2 3 4 5)
i=0
while ((i<${#array[*]}))
do
echo ${array[i]}
((i++))
done
====================================================
3.利用bash for循环打印下面这句话中字母不大于6的单词
3.1通过数组方法实现
#!/bin/bash
arr=(Success is getting what you want, happiness is wanting what you get)
for ((i=0;i<${#arr[*]};i++))
do
if [${#arr[$i]} -lt 6];then
echo "$arr[$i]"
fi
done
for count in ${arr[*]}
do
if [ `expr length $count` -lt 6 ];then
echo $count
fi
done
------------------------------------------------------
3.2通过awk循环实现
char="Success is getting what you want, happiness is wanting what you get"
echo $char |awk '{for(i=0;i<=NF;i++) if(length($i)<=6) print $i}'
====================================================
4.批量检查多个网站地址是否正常
#!/bin/bash
#Date 10:23 2018-09-27
#Author : demo
#Mail ***@qq.com
#Function: check_url
#Version: 1.1
. /etc/init.d/functions
check_count=0
url_list=(
blog.youkuaiyun.com/sinat_23957257
www.google.com
www.baidu.com
www.zhihu.com/
)
function wait()
{
echo -n "3 秒后,执行检查URL操作"
for ((i=0;i<3;i++))
do
echo -n ".";sleep 1
done
echo
}
function check_url()
{
wait
for ((i=0; i< `echo ${#url_list[*]}`; i++))
do
wget -o /dev/null -T 3 --tries=1 --spider ${url_list[$i]}
if [ $? -eq 0 ];then
action "${url_list[$i]}" /bin/true
else
action "${url_list[$i]}" /bin/false
fi
done
((check_count++))
}
main()
{
while true
do
check_url
echo "------check count:${check_count}---------------"
sleep 10
done
}
main
=======================================================================