简单的bash脚本来检查隧道是否存在

我想写一个简单的bash脚本的cronjob来检查是否有一些接口(隧道)exsisting。 如果不是,我想开始另一个脚本,(重新)启动它们。 我的问题是:我没有得到“IF”的工作:

#bin/bash for i in tun1 tun2 tun3 tun3 tun4 tun5 do OUT="$(ip a show $i up)"; if [[ $OUT == *"does not exist."* ]]; then echo "$i is down" else echo "$i is up" fi done 

当前输出是:

./check_tunnel.sh

tun1已启动

tun2已启动

tun3已经启动了

tun3已经启动了

tun4已经结束

设备“tun5”不存在。

tun5已经结束了

Device "tun5" does not exist. 打印到stderr(标准错误)。
你的脚本只捕捉stdout(标准输出)。

您可能会将stderrredirect到stdout以解决问题(尾随2>&1 )。

 OUT="$(ip a show $i up 2>&1)"