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 .