我正在创建一个脚本,用于检查VPS是否启用了TUN驱动程序。 check命令是:
cat /dev/net/tun
如果它返回:
cat: /dev/net/tun: File descriptor in bad state
模块已启用。否则返回ERROR。
这是我的剧本:
tunstring="File descriptor in bad state"
if cat /dev/net/tun | grep -q "$tunstring"; then
echo "GOOOOOD"
else
echo "ERROR"
fi
我收到ERROR
条消息。
我尝试使用文本文件创建相同的脚本,但它有效...
答案 0 :(得分:3)
由于输出是在stderr上写的,你可以使用:
tunstring="File descriptor in bad state"
if cat /dev/net/tun |& grep -q "$tunstring"; then
echo "GOOOOOD"
else
echo "ERROR"
fi
|&
将前一个命令的stdout和stderr传递给管道中的下一个。
看起来您的VPS路径/dev/net/tun
已无效,cat
命令无法读取它。