Perl 스크립트를 호출 한 후 명령 쉘을 어떻게 종료합니까?

StackOverflow https://stackoverflow.com/questions/2049293

  •  20-09-2019
  •  | 
  •  

문제

명령 프롬프트 (c : wind

나는 시도했다 system("exit 0") Perl 스크립트 내부에서는 Perl 스크립트가 실행중인 위치에서 CMD 프롬프트 쉘을 종료하지 않습니다.

나는 또한 시도했다 exit; PERL 스크립트에서 명령하지만 작동하지 않습니다.

도움이 되었습니까?

해결책

Perl 스크립트를 실행하기 위해 명령 쉘을 시작하는 경우 Arkaitz Jimenez의 답변이 작동해야합니다 (투표했습니다.)

그렇지 않다면 다음과 같은 배치 파일을 만들 수 있습니다. runmyscript.bat, 콘텐츠 :

@echo off
perl myscript.pl
exit

그만큼 exit 쉘 세션을 종료합니다 (부작용으로 배치 스크립트 자체를 종료하십시오.)

다른 팁

다음과 같은 명령 줄로 Perl 스크립트를 실행하십시오.

perl script.pl & exit

Ampersand는 첫 번째 명령이 끝난 후 두 번째 명령을 시작합니다. 당신은 또한 사용할 수 있습니다 && 첫 번째 명령을 실행하려면 첫 번째 명령이 성공한 경우에만 (오류 코드는 0).

당신은 시도 했습니까? cmd.exe /C perl yourscript.pl ?

에 따르면 cmd.exe /? /C 문자열로 지정된 명령을 수행 한 다음 종료합니다.

당신은 다음을 사용하여 새 창에서 프로그램을 시작할 수 있습니다. DOS 명령을 시작하십시오. 당신이 그것을 부르면 /B 그런 다음 추가 창이 작성되지 않습니다. 그런 다음 출구로 전화하여 현재 창을 닫을 수 있습니다.

그것이 트릭을할까요?

Perl에서 상위 쉘에 신호를 보낼 수 있습니다.

 kill(9,$PARENT_PID);`

불행히도, getppid() 기능은 Windows의 Perl에서 구현되지 않으므로 다른 수단을 통해 상위 쉘 PID를 찾아야합니다. 또한 신호 #9가 최선의 선택이 아닐 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top