쉘 스크립트에 Tab 단축키를 추가할 수 있나요?

쉘 스크립트에 Tab 단축키를 추가할 수 있나요?

입력이 있을 때 셸에서 Tab 단축키를 사용하여 자동 완성할 수 있나요?

이와 같이:

여기에 이미지 설명을 입력하세요.

"test"를 입력하고 Tab 단축키를 누르면 "test"가 자동으로 "test.md"로 완성됩니다.

제안을 환영합니다!

답변1

이를 사용하여 rlwrap거의 모든 명령줄 프로그램(셸 스크립트 포함)에 readline 지원(완성 및 기록/호출 포함)을 추가할 수 있습니다.

자세한 내용은 참고자료를 참조 man rlwrap하고, rlwrap 사용에 대한 보다 구체적인 조언이 필요한 경우 최소한의 예제 셸 스크립트를 포함하도록 질문을 편집하세요.

rlwrap대부분의 Linux 배포판에 대해 이미 패키지되어 있으며 다음에서 소스 코드를 찾을 수 있습니다.https://github.com/hanslub42/rlwrap

그런데 debian rlwrap 패키지의 설명 필드에는 다음이 표시됩니다.

Description-en: readline 함수 명령줄 래퍼 이 패키지는 GNU readline 라이브러리를 사용하여 다른 명령에 대한 키보드 입력을 편집할 수 있는 작은 유틸리티를 제공합니다. 입력 기록은 각 명령에 대해 개별적으로 호출 전반에 걸쳐 기억됩니다. bash에서와 같이 기록 완료 및 검색 작업이 완료 단어 목록을 명령줄에 지정할 수 있습니다.

그런데 매뉴얼 페이지에 언급된 한 가지 유용한 내용은 다음과 같습니다.

쉘 스크립트에서는 읽기 대신 "원샷" 모드에서 rlwrap을 사용하십시오.

order=$(rlwrap -pYellow -S 'Your pizza? ' -H past_orders -P Margherita -o cat)

이것은 다음과 같은 것을 대체하는 역할을 할 것입니다.read -p 'Your order? ' order

관련 정보