在执行命令之前等待网络接口

Geo*_*rey 7 bash shell networking

关于如何实现这一点,我有几点想法.不知道我怎么编写脚本.

方法1 :(可能是更好的选择)

创建一个ping服务器的循环,直到收到回复,然后执行命令,如果在X时间内没有收到回复/运行continue脚本.

方法2:

检查网络接口是否具有有效的IP然后继续脚本

如何在脚本中添加此功能.awk或grep会在这样的情况下使用吗?提前感谢您提供任何输入.

Pla*_*wer 5

此命令应该等到它可以联系谷歌或它已尝试50次:

for i in {1..50}; do ping -c1 www.google.com &> /dev/null && break; done
Run Code Online (Sandbox Code Playgroud)

for i in {1..50}循环50次,或者直到一个break被执行.在ping -c1 www.google.com发送1个ping包谷歌,并&> /dev/null会将所有输出为null,所以没有什么是outputed.&& break仅当前一个命令成功完成时才执行break,因此循环将在ping成功时结束.