我想为网络设置设置 1 秒超时,这样该命令最多不会超过 2 秒。
答案1
一种方法是timeout
通过以下方式安装 GNU 工具brew
:
$ brew install coreutils
您可以看到这timeout
是该包的一部分:
$ brew list coreutils | grep timeout
/usr/local/Cellar/coreutils/8.29/bin/gtimeout
/usr/local/Cellar/coreutils/8.29/libexec/gnubin/timeout
/usr/local/Cellar/coreutils/8.29/libexec/gnuman/man1/timeout.1
/usr/local/Cellar/coreutils/8.29/share/man/man1/gtimeout.1
然后这样做:
$ gtimeout 3 networksetup ....
例子
我在这里做了一些额外的事情。我用来time
显示该命令仅在 3 秒后退出,我用 a 来保护该命令,如果它超过 5 秒,-k5
它将向该命令发送 a 。SIGTERM
$ time gtimeout -k5 3 sleep 10
real 0m3.005s
user 0m0.002s
sys 0m0.003s