Bash

如何驗證目前命令提示符是否包含已鍵入的字元

  • March 11, 2021

我將我的一個功能綁定到熱鍵:

bind -x '"\em": __my_function'

我希望函式根據命令行提示符是否已經包含字元而表現不同。

例如

$ ***presses ^M***

行為不同於

$ cd ***presses ^M***

因為在使用者按下 ^M 時已經在提示中輸入了命令/某些文本。

如何在 bash 中檢測到這一點?

__my_function應該檢查是否$READLINE_LINE為空。例子:

__my_function() {
  if [ "$READLINE_LINE" ]; then
     echo foo
  else
     echo bar
  fi
}

在 中搜尋READLINE_LINE和。READLINE_POINT``man 1 bash

引用自:https://unix.stackexchange.com/questions/638834