我将我的函数绑定到热键:
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