您的位置:首页 > 理论基础 > 计算机网络

批量检查多个网络是否正常

2018-02-14 11:53 337 查看
shell数组的定义:
方法1:用小扩话将变量值括起来赋值给数组变量,每个变量值之间要用空格进行分割。
语法如下:
array=(value1 value2 value3 ....) #常用



方法2:用小括号将变量值括起来,同时采用键值对的形式赋值。



最三种比较麻烦,不使用。

第四种方法是动态定义数组变量,并使用命令的输出结果作为数组的内容:
array=($(命令))
或者:

array=(`命令`)



13.2.2 shell脚本打印及输出



3.数组赋值: 删除是要使用unset删除下标



5.数组内容的截取和替换



13.3shell数组脚本开发实践
范例13-1:使用循环批量修改数组的元素
#!/bin/bash

aa=(1 2 3 4)
for ((i=0;i<${#aa[*]};i++))
do
echo ${aa[i]}
done

另一种方式:
#!/bin/bash

aa=(
1
2
3
4
)
for ((i=0;i<${#aa[*]};i++))
do
echo ${aa[i]}
done
~
~
范例13-3 将命令的结果作为数组元素定义并打印
#!/bin/bash

b=($(ls /tmp/xpg/))

for i in `seq ${#b[*]}`
do
c=$(($i-1))
echo "this is "$i" num,the num is ${b[c]}"
done
13.4 shell数组的重要命令

(1)定义命令:
静态数组:
array=(1 2 3)
动态数组
array=($(ls /tmp/xpg))
(2) 打印命令
打印出所有值
${array[@]} 或者 ${array[*]}
打印数组长度
${#array[@]} 或者 ${#array[*]}
打印单个元素:
${array[i]}

13.5 shell数组相关面试题及高级实战案例
范例13-4:利用base循环打印下面这句话中字母数不大于6的单词(某企业面试题)
I am oldboy teacher welcome to oldboy training class
#!/bin/bash
aa=(I am oldboy teacher welcome to oldboy  training  class)

for ((i=0;i<${#aa[*]};i++))
do
b="`echo ${aa[i]} | wc -L`"
if [ $b -lt 6 ]; then
echo -ne "${aa[i]} "
fi
done
echo " "
~
范例13-5 批量检查多个网站是否正常

1)使用shell数组的方法实现,检测策略尽量模拟用户访问
2)每10秒进行一次全部检测,发文访问的输出报警
3)待测试的地址如下 http://bolg.oldboyedu.com http://blogetiantian.org http://oldboy.blog.51cto.com http://192.168.116.135
#!/bin/bash
#this shell created by huipg
#mail:1159291043@qq.com
#
source /etc/init.d/functions
export LANG="zh_CN.UTF-8"
test=( http://www.baidu.com http://www.taobao.com http://www.blog.51cto.com http://192.168.116.135
)

sta() {
for ((i=1;i<6;i++))
do
echo -n "."
sleep 1
done
echo  " "
}

check_url() {

for ((i=0;i<${#test[*]};i++))
do
wget -o /dev/null -T 5 --spider --tries=1 ${test[i]} >/dev/null
if [ $? -eq 0 ]; then
action "this URL:"${test[i]}" is ok"  /bin/true
else
action "this URL:"${test[i]}" is bad"  /bin/false
fi
sleep 10
done
}

main() {
while true
do

echo "---开始测试---"
sleep 10
echo  "---请稍后---"
sta
check_url
done
}
main
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux shell 测试