現在のコマンドプロンプトに入力した文字が含まれていることを確認する方法

現在のコマンドプロンプトに入力した文字が含まれていることを確認する方法

私の機能をショートカットにバインドします。

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_LINEREADLINE_POINTman 1 bash

関連情報