X 시간 내에 명령이 완료되지 않으면 배쉬?


13

나는 다음과 같은 것을 실행하려고합니다.

sudo dhclient $wifi || otherFunction

문제는 dhclient실패하면 오류를 던지는 대신 중단됩니다.

그래서 위의 어떻게 다시 쓸 수 dhclient사망하고 otherFunction경우에 불려갑니다 dhclient60 초 완료되지 않습니다?

답변:


13

귀하의 태그는 모두 던져 준다 :

sudo timeout 60 dhclient $wifi || otherFunction

예를 들면 :

sudo timeout 3 sleep 5 || echo finished early

이것은 Linux에서 GNU coreutils 패키지가 제공 하는 시간 초과 유틸리티를 사용합니다 .


2
불행히도 MacOS에서 작동하지 않습니다
Alexander Mills

timeoutMacOS의 경우 : stackoverflow.com/a/21118126/451480
Blaise

timeout다른 이유로 인해 명령이 실패하는 것과 달리 명령 종료를 구체적으로 확인하려면 종료 상태 124를 확인하십시오.
muru


2

다음 과 같은 포트 timeout로 포장 된 상태로 사용하십시오 .gtimeoutcoreutilsbrew

brew install coreutils
gtimeout --help

그것은 /usr/local/bin에서 작동 합니다 PATH. timeout원래 이름대로 사용하려면 에 추가 /usr/local/opt/coreutils/libexec/gnubin하십시오 PATH.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.