我正在运行一个依赖于网络启动和网络共享安装的脚本。该脚本在登录时运行(启动后自动发生)。问题是在脚本运行时,我通常还没有 IP 地址 (DHCP)。目前我只是让脚本休眠 15 秒,但我根本不喜欢这种方法,因为我希望能够告诉用户是否有问题。
我的计划是,当我还没有 IP 地址时循环并在我有时继续。至关重要的是,它必须在一段时间后超时。我想出的是,if [ ifconfig | grep "192.168.100" ];但结果是 grepconsumes];并且不喜欢它。然后 bash 也会感到不安,因为它找不到];哪个 grep 吃了。然后我什至还没有实现超时。
有人建议保留一个变量,并在每次迭代中休眠一秒,每次都增加这个变量。这是我的完整(非工作)脚本(我对 bash 脚本还很陌生):
x=0
while [ ifconfig | grep "192.168.100." > /dev/null ]; do
echo "no nework"
if "$x" -gt 200; then
#Time out here
exit 1
x=$((x+1))
sleep .1
fi
done
#continue with rest of script...
Run Code Online (Sandbox Code Playgroud)
任何指向正确方向的指针将不胜感激!