我正在制作一个小脚本来确定我在 OSX 上是否有互联网连接。更多的只是练习,我想。
在终端中“ifconfig | grep -cs 'status: active'” 如果至少有一个活动连接将返回 1
我的脚本是这个
#!/bin/bash
detect(){
ONLINE=ifconfig | grep -cs 'status: active'
}
if [[ detect = 1 ]]
then
echo "Online"
else
echo "Offline"
fi
但是,变量 ONLINE 始终返回 0。据我所知/理解,这与在脚本内部使用管道有关。运行命令时使用子管道,当子管道关闭时,ONLINE 会卡在 0 上。
我想我看到了这个问题,但我不知道如何解决这个问题。我看到了很多脚本的解决方法,这些脚本在 while 循环中有这个问题,但是我不需要将 ifconfig 的输出输入到 grep 的地方。