如何验证当前命令提示符是否包含已键入的字符

如何验证当前命令提示符是否包含已键入的字符

我将我的函数绑定到热键:

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

相关内容