Sua tag timeout fornece tudo:
sudo timeout 60 dhclient $wifi || otherFunction
Um exemplo:
sudo timeout 3 sleep 5 || echo finished early
Isso usa o utilitário timeout fornecido pelo pacote GNU coreutils no Linux.
Estou tentando executar algo como:
sudo dhclient $wifi || otherFunction
O problema é quando dhclient
falha, apenas trava ao invés de gerar um erro.
Como posso reescrever o acima, então dhclient
é eliminado e otherFunction
é chamado se dhclient
não terminar em 60 segundos?
Sua tag timeout fornece tudo:
sudo timeout 60 dhclient $wifi || otherFunction
Um exemplo:
sudo timeout 3 sleep 5 || echo finished early
Isso usa o utilitário timeout fornecido pelo pacote GNU coreutils no Linux.
Use timeout
.
timeout 2 sleep 1
echo $?
0
timeout 1 sleep 2
echo $?
124
Use o timeout
compactado como gtimeout
com a coreutils
port em brew
:
brew install coreutils
gtimeout --help
Isso funcionará com /usr/local/bin
no seu PATH
. Se você quiser usar timeout
como originalmente nomeado, adicione /usr/local/opt/coreutils/libexec/gnubin
ao seu PATH
.