我要监视我的接入点是否可 ping 通并将结果存储到 0-1 字符串中
我写了一个脚本,但运行错误
#/bin/bash
access_points=("tplink2" "redmi1")
#results=("A")
declare -a results
for val in "${access_points[@]}"
do
ping -c 4 -w 10 $val 2>&1 >/dev/null
if [ $? -eq 0 ]
then
online="+"
else
online="-"
fi
results[${#results[@]}]=$online
done
echo "${resutls[*]}"
echo $results
为什么?我可以不将值收集到数组中,而是收集到空格分隔的字符串中吗?
答案1
要将元素添加到数组,请使用+=
:
results+=("$online")
另请注意,resutls
和results
不要引用同一个变量。
顺便说一句,您不必检查$?
,您可以直接在以下位置运行命令if
:
#! /bin/bash
access_points=("tplink2" "redmi1")
declare -a results
for val in "${access_points[@]}"
do
if ping -c 4 -w 10 "$val" 2>&1 >/dev/null
then
online="+"
else
online="-"
fi
results+=("$online")
done
echo "${results[@]}"