화살표 키를 사용할 때 bash 프롬프트에서 ANSI 코드 방지

화살표 키를 사용할 때 bash 프롬프트에서 ANSI 코드 방지

먼저, 명확히 해야 할 두 가지 사항이 있습니다.

  • 예, 비슷한 제목의 질문이 이미 여러 개 있지만 동일한 상황에 대해 이야기하지도 않고 만족스러운 답변을 제공하지도 않는 것을 보았습니다.
  • read"bash 프롬프트"를 의미하는 것은 터미널/셸이 제공하는 프롬프트가 아니라 대화형 스크립트 내의 프롬프트에 대해 말하는 것입니다 . "일반" 셸 프롬프트(제 경우: macOS 터미널 앱, Bash 5.0)가 아닌 스크립트에서만 이 문제가 발생하지 않습니다.

즉, 내 스크립트에는 사용자 프롬프트가 있습니다. 예를 들어 다음과 같습니다.

read -rp "Enter your name: " name

여태까지는 그런대로 잘됐다. 사용자가 철자 오류를 범하지 않는 한 이는 문제가 되지 않을 수 있습니다. 그러나 사용자가 무언가를 수정하고 싶을 때는 화살표 키를 사용하지 않는 것이 좋습니다. 그렇게 하면 예상과 달리 저주는 움직이지 않고 이상한 캐릭터가 나타납니다.

Enter your name: Sanantha^[[D

이러한 표시를 피할 수 있는 방법이 있습니까? 다른 스레드에서 배웠습니다. ANSI 코드가 있습니까? 예상되는 동작은 "왼쪽" 키를 누를 때마다 실제로 커서를 왼쪽으로 한 문자 이동하는 것입니다.

이것은 배포할 스크립트이기 때문에 스크립트 내에서 수정할 수 있고 구성 파일을 망칠 필요가 없다면 가장 좋습니다.

감사합니다!

관련 정보