2009-12-16 5 views
16

쉘 스크립트에서 지연 후 프로세스를 생성하려면 어떻게해야합니까? 스크립트가 시작된 후 60 초가 걸리는 명령을 원하지만 60 초가 지나지 않고 나머지 스크립트를 계속 실행하고 싶습니다. 출력은 내가 모두 하나의 스크립트에서이 작업을 수행 할 수 있어야합니다지연 후 프로세스를 생성하는 쉘 스크립트

B 
C 
... 60 seconds later 
A 

해야

#!/bin/sh 
# Echo A 60 seconds later, but without blocking the rest of the script 
sleep 60 && echo "A" 

echo "B" 
echo "C" 

: 여기에 생각입니다. 예. 첫 번째 셸 스크립트에서 호출되는 두 번째 스크립트를 만들지 않습니다.

+0

이 있습니다. 간단하고 쉬운. 짧고 달콤한 – user1276046

답변

30

&을해야는 백그라운드 작업을 시작, 다른 답변에 이렇게

sleep 60 && echo "A" & 
+0

나는 그 그룹화 (괄호 또는 중괄호)없이 작업을보고 놀랐다. 감사 :-) – Tanktalus

3

지금 그것을 시도 할 수는 없지만

(sleep 60 && echo "A")&

작업

+0

그래, 그럴거야 :) –

6

약간의 확장 스크립트가 끝날 때 백그라운드 명령을 기다리는 것입니다.

#!/bin/sh 
# Echo A 60 seconds later, but without blocking the rest of the script 

set -e 

sleep 60 && echo "A" & 
pid=$! 

echo "B" 
echo "C" 

wait $pid