Kje*_*son 1 linux bash interface
我正在尝试为 cronjob 编写一个简单的 bash 脚本来检查是否存在某些接口(隧道)。如果不是,我想启动另一个(重新)启动它们的脚本。我的问题是:我没有让“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
Run Code Online (Sandbox Code Playgroud)
当前输出为:
./check_tunnel.sh
tun1 已启动
tun2 已启动
tun3 已启动
tun3 已启动
tun4 已启动
设备“tun5”不存在。
tun5 已启动
Device "tun5" does not exist.
打印到 stderr(标准错误)。
您的脚本仅捕获 stdout(标准输出)。
您可以将 stderr 重定向到 stdout 以解决问题(尾随2>&1
)。
OUT="$(ip a show $i up 2>&1)"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
841 次 |
最近记录: |