![현재 명령 프롬프트에 입력한 문자가 포함되어 있는지 확인하는 방법](https://linux55.com/image/189352/%ED%98%84%EC%9E%AC%20%EB%AA%85%EB%A0%B9%20%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8%EC%97%90%20%EC%9E%85%EB%A0%A5%ED%95%9C%20%EB%AC%B8%EC%9E%90%EA%B0%80%20%ED%8F%AC%ED%95%A8%EB%90%98%EC%96%B4%20%EC%9E%88%EB%8A%94%EC%A7%80%20%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
내 기능을 단축키에 바인딩합니다.
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_POINT
man 1 bash