명령 프롬프트를 종료하는 Unix 명령

명령 프롬프트를 종료하는 Unix 명령

쉘 파일의 명령 프롬프트를 종료하는 방법은 무엇입니까?

쉘 파일에는 다음이 포함됩니다.

if(); then
// some unix code here
else
// want to exit from cmd prompt or Kill current cmd prompt
fi

@it 아는 사람 있어?

답변1

스크립트에 의해 생성된 대화형 셸을 종료하고 싶다는 뜻이라고 가정합니다. 나는 또한 쉘이 bash.

해당 셸에서 스크립트를 가져오는 경우 를 사용하세요 exit. 그렇지 않으면 SIGABRT다음을 사용하여 상위 pid(대화형 셸)로 전송(또는 bash를 종료시키는 다른 신호)하세요.

kill -ABRT "$PPID"

또는 다음이 없는 셸에서 $PPID(Linux에만 해당):

read -r _ _ _ ppid _ < "/proc/$$/stat"
kill -ABRT "$ppid"

답변2

좋다크리스 탕, 나는 당신이 GNU bash를 사용하고 있다고 가정합니다. 다른 쉘은 다를 수 있지만 일반적인 아이디어는 동일해야 합니다.

Bash에서 환경 변수에는 $$현재 실행 중인 프로세스의 프로세스 ID와 $PPID실행 중인 상위 프로세스의 프로세스 ID가 포함됩니다. Chris가 예제를 제시한 것처럼 더 올라갈 수 있지만 /proc는 Linux에만 해당됩니다.

다음과 같은 구조를 사용하여 사용자에게 로그아웃할지 물어볼 수 있습니다.

echo "Do you want to exit? (type YES or NO, then Enter)"
read answer
if test "${answer}" = "YES"; then
    # insert process killing magic
fi
# we only get here if the user did not answer "YES"

가능하다면 GNU를 사용하여 dialog문제를 좀 더 예쁘게 만들 수 있습니다. 이 경우 위의 전체 코드 조각을 다음으로 바꾸세요.

if dialog --yesno "Do you want to exit?" 10 50; then
    # insert process killing magic
fi
# we only get here if the user did not answer "YES"

이 숫자는 10 50대화 상자의 크기(각각 행과 열)를 지정합니다.

process killing magic이것 처럼 간단 할 수도 있습니다 kill $PPID.

관련 정보