2014-04-05 2 views
1

세 개의 하위 스크립트를 실행하는 상위 스크립트가 있습니다. 나는 1) 새로운 터미널 창에서 각 자식 스크립트를 열려고한다. 2) 계속하기 전에 부모 스크립트 이 각 하위 스크립트를 종료 할 때까지 대기이되도록 만듭니다. 그래서 :새 터미널에서 실행되는 하위 스크립트 대기

마스터

  1. 아이-1의 새로운 터미널
  2. (대기 아동 1 번 출구에 대한)
  3. 아동이 새 터미널
  4. (대기 아동 2에에 에서 출구)
  5. 어린이 3 새 터미널
  6. (어린이 3 출구)
,369 기다립니다

exit

하위 스크립트를 새 터미널 창에서 열 수 있지만 대기하지 않고 세 개의 하위 스크립트를 모두 실행합니다. 여기에 부모 스크립트는 다음과 같습니다

#!/bin/bash 

# workspace 
mkdir ./temp 

# system setup 
echo "***** setting up system environment *****" 
gnome-terminal -x ./setup_sysconfig > setup-system.log 
wait 

# user setup 
echo "***** setting up user environment *****" 
gnome-terminal -x ./setup_usrconfig > setup-user.log 
wait 

# server setup 
echo "***** setting up server environment *****" 
gnome-terminal -x ./setup_svrconfig > setup-server.log 
wait 

# cleanup 
rm -r ./temp 

echo "Initial System Setup Complete" 
exit 0 

어떻게 각 스크립트가 끝날 때까지 기다리는 부모 스크립트를 강요하는 동안 아이 스크립트는 별도의 터미널에서 실행을받을 수 있나요? (우분투 13.04에 있습니다.)

답변

2

wait은 백그라운드를 보냈을 때까지만 기다립니다. 당신이 gnome-terminal--disable-factory 옵션을 사용하는 경우 I는 명령이 끝날 때까지 다음 스크립트가 대기 믿습니다

gnome-terminal --disable-factory -x ./setup_svrconfig > setup-server.log 
관련 문제