내 기능을 단축키에 바인딩합니다.
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