![如何验证当前命令提示符是否包含已键入的字符](https://linux22.com/image/189352/%E5%A6%82%E4%BD%95%E9%AA%8C%E8%AF%81%E5%BD%93%E5%89%8D%E5%91%BD%E4%BB%A4%E6%8F%90%E7%A4%BA%E7%AC%A6%E6%98%AF%E5%90%A6%E5%8C%85%E5%90%AB%E5%B7%B2%E9%94%AE%E5%85%A5%E7%9A%84%E5%AD%97%E7%AC%A6.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