2016-07-24 2 views
1

10 초 간격이 있습니다. 쉘에서 명령을 실행하고 10 초 간격을 완료하기를 기다리고 싶습니다. 명령이 10 초 이상 걸리면 OK입니다.Bash : 명령을 실행하고 필요한 경우 대기하십시오 (시간 초과와 반대)

내가 아래에 해당하는 "foo는"기능을 찾고 있는데요 : myscript.py 2 초 걸리는 경우

>> foo 10 python myscript.py 
  • , 쉘은 afterwhile 팔초을 기다려야합니다.
  • myscript.py가 5 초가 걸리면 쉘은 5 초 후 기다려야합니다.
  • myscript.py가 12 초가 걸리는 경우 셸이 대기하지 않아야합니다. myscript.py 역시 시간 초과해서는 안됩니다!

"foo"기능이 있습니까?

+0

을 비슷한 문제가 여기에 : http://stackoverflow.com/a/41108021/771740 – JonatasTeixeira

+0

나는 여기에 비슷한 질문에 대답 : http://stackoverflow.com/a/41108021/771740 – JonatasTeixeira

답변

0

백그라운드에서 sleep 10과 스크립트를 모두 실행 한 다음 둘 다 완료 될 때까지 기다리십시오.

python myscript.py & 
sleep 10 & 
wait 
당신은 간단한 명령 (명령 이름과 인수,없는 파이프, 리디렉션, &&|| 등) 포장 쉘 함수를 정의 할 수 있습니다

나는에 대한 답을 썼다

foo() { 
    t=$1 
    shift 
    "[email protected]" & 
    sleep "$t" & 
    wait 
} 

foo 10 python myscript.py 
관련 문제