"exec false"는 어떻게 그리고 왜 터미널을 닫습니까?


답변:


10

exec false하여 명령을 실행하여 현재 쉘을 대체하고 false(여기 안 쉘 내장 만 /bin/false또는 무엇이든 false에서 먼저 실행 PATH한 빨리 종료). 쉘이 터미널 에뮬레이터에서 실행되는 최상위 프로세스 인 경우 더 이상 프로세스가 실행되지 않으므로 터미널 에뮬레이터가 닫힙니다.

이것은 많은 유사한 명령과 마찬가지로 터미널을 닫을 수있는 대체 방법입니다.

exec true
exec sleep 0
exec echo
...

참조 : what-does-an-exec-command-do


참고로에 명령 쓰기 bashexec포함하여 호출하기 전에 특정 정리를 수행 합니다 .bash_history. 따라서 단순히 .bash_history같은 터미널 창에서 새 쉘에 저장 하고 새 쉘을 시작하려는 경우을 입력하면됩니다 exec bash.
kasperd

그래, 고마워 내 질문에 완벽하게 대답 :)
dragonloverlord

그리고 좋은 질문입니다! 그러므로 둘 다 공감했다! ;)
Fabby

@jiliagre execPATH내장이 아닌에 있는 명령을 호출합니다 . 예를 들어, 오류 exec [[ $USER = root ]]를 반환 bash: exec: [[: not found합니다. OP의 경우 쉘 내장이 아닌 falseis /bin/false입니다. 그렇지 않으면 좋은 대답이므로 +1입니다. 참고로, exec컷오프 명령의 일종이 될 수 있습니다. 예를 들어 예제의 세 가지 명령을 스크립트로 만든 경우 스크립트에 의해 호출 된 쉘을 오른쪽에있는 명령으로 대체 exec하기 때문에 처음 에는 도달 할 수 없습니다. execexec.
Sergiy Kolodyazhnyy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.