[unix] 터미널 응용 프로그램 (Mac)을 다시 시작하지 않고 터미널에서 bash를 다시 시작 하시겠습니까?

나는이 질문에 대한 대답을 둘러 보았지만 조금 찾지 못했습니다 (이상한 것).

내 질문은, Mac의 터미널 내에서 bash 세션을 다시 시작할 수있는 간단한 방법이 있습니까? 터미널 응용 프로그램을 닫고 다시 시작한 것처럼 동일한 동작을 원합니다 (모든 변수 재설정, .bash_profile 소스 등).

.bash_profile을 소싱하는 방법을 알고 있지만 그것이 원하는 것은 아닙니다. 내가하고 싶은 이유 중 하나는 내 bash 프롬프트 용 플러그인에 색상이 여러 번로드되지 않도록하는 코드가 있기 때문입니다. 따라서 .bash_profile을 소싱하면 색상 변수가 다시로드되지 않으며 변경 사항을 적용하려면 터미널 응용 프로그램을 다시 시작해야합니다.



답변

exec bash 현재 쉘 프로세스를 (새로운 인스턴스) bash로 바꿔야합니다.


답변

수락 된 답변은 bash를 사용하는 쉘에 좋습니다.이 또한 OP가 요청한 것입니다. 그러나 기본 쉘이 아닌 쉘 (zsh)과 함께 macOS에서 터미널을 사용하고 명령을 실행하면 exec bash분명히 원하는 효과가 없습니다. : 기본 쉘 대신 bash를 시작합니다.

따라서 환경에 독립적 인 명령은 사용자의 기본 쉘을 저장하는 exec $SHELL환경 변수 $SHELL를 사용합니다.

또한, 노트는 애플이 맥 OS 카탈리나 zsh을 함께 떠들썩한 파티를 교체 조치 할 수 있도록 영업이 실행 중이 찾고있는 효과가 exec zshexec $SHELL맥 OS 10.15로 업데이트 한 후 이동하는 방법이 될 것입니다.


답변