2014-04-17 2 views
0

나는 쉘 파일을 가지고 있는데, 결국에는 을 입력하고을 눌러 다시 실행시킬 수있다. 문제는 내가 을 입력 할 때마다 새로운 프로세스가 생성되고 20 회 또는 30 라운드가 끝날 때마다 30 개의 PID가 생겨 결국 Linux가 엉망이됩니다. 그래서, 내 질문은 : 내가 어떻게하면 ENTER를 누를 때마다 새 스크립트를 만드는 대신에 동일한 프로세스에서 항상 스크립트를 실행할 수 있습니까?쉘 스크립트를 재시작하여 리눅스에서 새 프로세스 만들기

코드 : 당신이 대신 bash을 실행 사용해야하므로

#!/bin/bash 

echo "Doing my stuff here!" 

# Show message 
read -sp "Press ENTER to re-start" 
# Clear screen 
reset 
# Re-execute the script 
./run_this.sh 

exec $SHELL 
+1

재귀 적 실행이 아닌 반복적 인 구조를 사용해야합니다. 테스트가 처음에있을 수 있다면, while 루프는 간단하게 수행 할 수 있습니다. 마지막에 있어야한다면 http://stackoverflow.com/questions/16489809/emulation-do-while-loop-in-bash를 읽을 수 있습니다. –

답변

0

당신은,

exec 쉘 스크립트가 작동하지 않습니다 그래서

#!/bin/bash 

echo "Doing my stuff here!" 

# Show message 
read -sp "Press ENTER to re-start" 
# Clear screen 
reset 
# Re-execute the script 
exec bash ./run_this.sh 
처럼 exec 스크립트 자체에 필요 스크립트를 인수로 사용하십시오.

즉, 스크립트 루프가 더 좋은 방법이라고합니다.

while :; do 
    echo "Doing my stuff here!" 

    # Show message 
    read -sp "Press ENTER to re-start" 
    # Clear screen 
    reset 
done 
관련 문제