%EC%9D%84%20%EB%8B%A4%EC%8B%9C%20%EC%8B%9C%EC%9E%91%ED%95%98%EC%A7%80%20%EC%95%8A%EA%B3%A0%20%ED%84%B0%EB%AF%B8%EB%84%90%EC%97%90%EC%84%9C%20bash%EB%A5%BC%20%EB%8B%A4%EC%8B%9C%20%EC%8B%9C%EC%9E%91%ED%95%98%EC%8B%9C%EA%B2%A0%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
이 질문에 대한 답변을 찾아봤지만 찾을 수 없는 것 같습니다(이상하네요).
내 질문은 Mac 터미널 내에서 BASH 세션을 다시 시작하는 쉬운 방법이 있는지입니다. 터미널 응용 프로그램을 닫고 다시 시작하는 것과 동일한 동작을 원합니다(모든 변수 재설정, .bash_profile
소스 등).
나는 자원을 얻는 방법을 알고 있지만 .bash_profile
그것은 내가 원하는 것이 아닙니다. 제가 이 작업을 수행하려는 이유 중 하나는 BASH 프롬프트의 플러그인에 색상이 여러 번 로드되는 것을 방지하는 코드가 있기 때문입니다. 따라서 소싱은 .bash_profile
색상 변수를 다시 로드하지 않으며 변경 사항을 적용하려면 터미널 응용 프로그램을 다시 시작해야 합니다.
답변1
exec bash
현재 쉘 프로세스는 (새 인스턴스) bash로 대체되어야 합니다.
편집: 아래 답변에서 Catalina가 bash를 zsh로 대체한 것으로 나타납니다. 이 경우 기본 셸을 실행할 수 있거나 항상 사용해야 합니다 exec zsh
.exec "$SHELL"
답변2
너무 길어요.에 있는 것과 동일한 쉘을 시작하려면 사용하십시오 exec $SHELL
. 허용되는 답변은 bash를 사용하는 경우에만 적용됩니다.
--
허용되는 답변은 OP가 요청한 bash를 사용하는 셸에 적합하지만 macOS에서 기본이 아닌 셸(zsh)이 있는 터미널을 사용하고 있으며 해당 명령을 실행해도 exec bash
분명히 원하는 결과가 없습니다. 효과: 기본 쉘 대신 bash를 시작합니다.
exec $SHELL
따라서 환경 독립적 명령은 사용자의 기본 셸을 저장하는 환경 변수를 사용합니다 .$SHELL
또한 Apple은 OP가 실행하려는 효과를 얻기 위해 exec zsh
또는 exec $SHELL
macOS 10.15로 업데이트한 후에 macOS Catalina에서 bash를 zsh로 대체했습니다.
답변3
~에 따르면이 기사Catalina로 업그레이드해도 쉘은 변경되지 않습니다. 하지만 새 계정은 zsh
. bash
로 변경할 수 있습니다. bash
향후 어느 시점에서는 macOS의 일부가 되지 않을 것입니다. 분명히 라이센스는 zsh
덜 제한적입니다.
OP가 exec zsh
.
답변4
이것은 나에게 효과적입니다.
exec env -i HOME=$HOME bash -l
exec
현재 쉘 교체env -i HOME=$HOME
기존 환경 변수를 모두 재설정하고 새 쉘의 HOME을 이전 $HOME으로 설정합니다.bash -l
새 로그인 셸을 시작합니다(zsh에도 비슷한 명령이 있을 수 있음)
별칭으로 추가했는데 잘 작동합니다.
alias reload='echo "Reloading shell...";exec env -i HOME=$HOME bash -l'