我正在创建一个脚本来检查 VPS 是否启用了 TUN 驱动程序。 检查命令是:
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
消息。
我用文本文件尝试了相同的脚本,它成功了...
最佳答案
因为输出是写在 stderr 上的,所以你可以使用:
tunstring="File descriptor in bad state"
if cat /dev/net/tun |& grep -q "$tunstring"; then
echo "GOOOOOD"
else
echo "ERROR"
fi
|&
将上一个命令的标准输出和标准错误通过管道传输到管道中的下一个。
看起来你的 VPS 路径,即 /dev/net/tun
不再有效,cat
命令无法读取它。
关于linux - 如果命令 "cat/dev/net/tun"结果 $string 那么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27843975/