J'essaie d'exécuter quelque chose comme:
Sudo dhclient $wifi || otherFunction
Le problème est lorsque dhclient
échoue, il se bloque simplement au lieu de lancer une erreur.
Comment puis-je réécrire ce qui précède pour que dhclient
soit tué et otherFunction
soit appelé si dhclient
ne se termine pas dans 60 secondes?
Utilisez le timeout
emballé comme gtimeout
avec le port coreutils
dans brew
:
brew install coreutils
gtimeout --help
Cela fonctionnera avec /usr/local/bin
dans votre PATH
. Si vous souhaitez utiliser timeout
comme initialement nommé, ajoutez /usr/local/opt/coreutils/libexec/gnubin
à votre PATH
.
Utilisez timeout
.
timeout 2 sleep 1
echo $?
0
timeout 1 sleep 2
echo $?
124