zsh는 알 수 없는 명령으로 인해 Arch-installation 쉘이 중단된 것 같다는 메시지를 표시합니다.

zsh는 알 수 없는 명령으로 인해 Arch-installation 쉘이 중단된 것 같다는 메시지를 표시합니다.

스크린샷

중요하지 않은 질문을 하게 된다면 미리 사과드립니다. 하지만 이 문제에 대한 정보를 어디서도 찾을 수 없어서 미칠 것 같습니다. 위의 그림을 참조하세요.

이는 아치 설치 셸에서 발생하며 virtualbox와 USB에서 부팅된 베어 메탈에서 이 현상을 재현할 수 있었습니다. 처음으로 Arch iso에서 부팅하면 zsh 프롬프트와 함께 루트 쉘이 나타납니다. root@archiso ~ #인식된 명령을 입력하면 프롬프트가 그대로 유지되는 것 같지만, 인식되지 않는 명령을 입력하면 zsh 프롬프트가 사용자입니다. 필드는 첫 번째 명령에서 에서 로 변경되고 root, 1 root후속 명령에서는 프롬프트가 다음으로 변경됩니다.127 root@archiso ~ #

분명히 말하면, 명령줄은 계속 작동하고 평소대로 설치를 계속할 수 있지만 루트 프롬프트를 이런 방식으로 변경하면 혼란스럽고 원인이 무엇인지 알지 못해 약간 걱정스럽습니다.

저는 zsh를 처음 접했기 때문에 이것이 아치 리눅스라기보다는 zsh의 특이한 점일 수도 있지만 사용자 이름에 약간의 증분을 표시하는 원인이 무엇인지 잘 모르겠습니다. 127이 7비트 중 가장 높은 값이기 때문에 127에서 멈춘다는 사실이 단서인 것 같습니다. 이것은 버그입니까? 이것이 악용될 수 있나요? 다른 사람이 이것을 알아 차렸습니까? 왜 이런 일이 발생하는지 설명할 수 있는 사람이 있나요? 당신의 도움을 주셔서 감사합니다!

PS1것은:

# echo "$PS1"
%B%F{red}%(?..%? )%f%b%B%F{red}%n%f%b@%m %B%40<…<%~%<< %b%#

답변1

나는 이것을 찾았다질문.

이것이 설명한다

"프롬프트에 이전 명령의 반환 코드를 표시하기 위해 이스케이프 시퀀스를 사용하는 기능이 포함되어 있습니다 Zsh." 이스케이프 시퀀스는 프롬프트에 포함되어 있으므로 Arch가 설치를 구성할 때 선택한 사항에 따라 예상되는 동작인 것 같습니다. 쉘 프롬프트.code/exit%?%?zshdevszsh

이것은 내가 추측하는 질문에 대한 대답입니다. 감사해요!

관련 정보