질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

exit할때 현재shell만 exit하기..

작성자 정보

  • 원더보이 작성
  • 작성일

컨텐츠 정보

본문

[답변]

쉘스크립트가 실행되면 자동으로 종료되면서 프로세스도 종료됩니다.

 스크립트 안에 exit 명령을 적으셨으니 로긴쉘이 종료된다 이말입니다.

1.-------------------------------------------

#!/bin/bash
echo "exit test"

exit(삭제)

2.---------------------------------------------

#!/bin/bash
echo "exit test"

echo "sub exit test"

subexittest

echo "subexittest exited"

exit(삭제)

--------------------------------

subexittest가

#!/bin/bash
echo "sub exit"

exit(삭제)

이렇게 바꾸시면 스크립트 가 전체 실행되고 모두 종료됩니다.

계속해서 수행하시려면 아래로 이어지는 명령들을 나열하시거나

loop나 분기문으로 다른 명령들을 수행하면 되겠죠?

 

석 님의 글


[질문]

shell script에서 현재 실행되고 있는 shell을 exit하려면 어떻게 하죠?

#!/bin/bash
echo "exit test"

exit

이렇게 하고 이 shell script를 실행시키면 exit 에서 터미널 까지 exit 가 되어 버리네요.

 

또 shell script에서 다른 shell script 를 수행시켰을때도  나중에 수행된 script에서 exit를 수행하면 전체 shell script가 exit 되어 버립니다.

즉,

exittest가

#!/bin/bash
echo "exit test"

echo "sub exit test"

subexittest

echo "subexittest exited"

exit

이고

subexittest가

#!/bin/bash
echo "sub exit"

exit

 

이거 일때 수행한 결과는

exittest

subexit test

이렇게만 찍힌다는겁니다.

즉 전체 shell script가 exit 되어서 echo "subexittest exited" 이라인이 수행되지 않는다는거죠...

subexittest에서 exit를 수행했을때 subexittest를 콜한 exittest까지 종료되어 버려서 exittest의 subexittest exited가 수행되지 않았다는 겁니다.

현재 수행중인 shell(subexittest) 만 exit를 하고 그걸 콜한 shell(exittest)은 계속 그 다음을 수행하도록 하려면 어떻게 해야하는 거지요.

edward 이걸 어떻게 수행되게 할 수 잇는지 조언 부탁드립니다.





 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,033 명
  • 현재 강좌수 :  35,783 개
  • 현재 접속자 :  120 명