수정 후에도 왜 계속 표시됩니까 echo $0
? -bash
쉘을 다음으로 변경했지만 zsh
시도해도 echo $0
여전히 "-"가 표시됩니다.
내가 한 일은...다음을 사용하여 사용 가능한 쉘을 확인했습니다.
cat /etc/shells
/bin/bash /bin/zsh ...가 표시됩니다.
한번 chsh -s /bin/zsh
케이스를 바꿨 어요
답변1
지금까지 chsh
이것이 실제로 무엇을 하는지 명확하게 설명하는 답변이나 의견은 없습니다.
chsh
현재 쉘을 변경 하려고 생각하는 것 같습니다 . 습관. 단지 로그인 쉘이 어떤 쉘인지 운영 체제에 알려주는 일부 레코드만 변경됩니다. 이 레코드는 로그인 셸이 시작되기 직전에 계산되기 시작합니다. 현재 셸(또는 시작된 다른 셸)은 영향을 받지 않습니다. 다른 셸로 변형되지 않으며, 종료되거나 다른 셸로 대체되지 않습니다.
"로그아웃 후 다시 로그인"과 같은 솔루션이 작동하는 이유는 다시 로그인한 후 원하는 로그인 셸에 액세스할 수 있기 때문입니다. 로그인 셸을 확인하고 실행하는 명령(선택한 것과 독립적으로 일부 고정 셸을 실행하는 대신)이 해결책이 될 수 있습니다. su
존재하다이 다른 답변그것이 순서입니다.
답변2
~처럼켈룸여전히 동일한 사용자 환경에 있음을 지적합니다.
새로 고치려면 로그아웃했다가 다시 로그인해야 합니다. 또는 원하는 경우 su
다음 명령을 사용하여 현재 세션을 잃지 않고 다시 로그인할 수 있습니다.
su - $USER
그러면 당신 echo $0
의 의지가 제대로 작동할 것입니다.
이 세션을 종료한 후 exit
이전 세션으로 다시 들어가게 됩니다.