자살 쉘 스크립트

자살 쉘 스크립트

스크립트 자체 내에서 스크립트를 종료하기 위한 간단한 테스트를 시도하고 있습니다. 작동하지 않는 것 같습니다.

function testKill
{
  PID=$$
  kill $PID
  echo  hello!
}

이 기능을 실행하면,

[....]$ testKill
hello!

분명히 프로세스가 종료되지는 않습니다. echo 명령을 보내기 전에 프로세스를 종료하려면 어떻게 해야 합니까?

이 모든 것을 외부 스크립트로 옮길 때 명령줄에서 직접 스크립트를 호출하면 올바르게 종료됩니다. 그러나 .bash_profile에 함수를 생성하고 해당 함수에서 스크립트를 호출하면 스크립트가 종료되지 않고 인쇄됩니다. 이것을 내 .bash_profile에 어떻게 통합합니까?

이는 보다 복잡한 스크립트에 사용하기 위한 최소한의 작업 예제입니다.

답변1

귀하의 예에서는 스크립트를 작성하지 않았습니다. 따라서 이를 kill대화형 셸 세션에 적용합니다. 대화형 쉘은 SIGTERM사용자가 보내는 신호를 포함하여 대부분의 신호를 무시합니다.

함수와 해당 호출을 스크립트에 넣고 실행합니다. 기대에 부응할 가능성이 더 높습니다.

답변2

bash에서(각각 콘솔에서) 직접 함수로 사용하려면 다음을 시도해 보세요.

function testKill
{
  kill $PPID
  echo  "no hello :-/"
}

관련 정보