현재 명령 프롬프트에 입력한 문자가 포함되어 있는지 확인하는 방법

현재 명령 프롬프트에 입력한 문자가 포함되어 있는지 확인하는 방법

내 기능을 단축키에 바인딩합니다.

bind -x '"\em": __my_function'

명령줄 프롬프트에 이미 문자가 포함되어 있는지 여부에 따라 함수가 다르게 작동하도록 하고 싶습니다.

예를 들어

$ ***presses ^M***

행동은 다음과 다릅니다

$ cd ***presses ^M***

사용자가 ^M을 누르면 명령/일부 텍스트가 이미 프롬프트에 입력되어 있기 때문입니다.

Bash에서 이것을 어떻게 감지합니까?

답변1

__my_function비어 있는지 확인해야 합니다 $READLINE_LINE. 예:

__my_function() {
   if [ "$READLINE_LINE" ]; then
      echo foo
   else
      echo bar
   fi
}

및 에서 검색하세요 READLINE_LINE.READLINE_POINTman 1 bash

관련 정보