私は、このスクリプトのソースを入力すると、Enterキーのreadlineの再バインドによって、カスタム関数を介して入力されたすべての行を渡します。bashのreadline:プロキシの入力キー
my_eval() {
local cur_line="$READLINE_LINE"
(...) <some special checks and actions if line matches criteria >
# when crits DON'T match I want normal behaviour:
eval "$cur_line" # <- the only way?
READLINE_LINE=""
}
bind -x '"\C-M": "my_eval"'
私の問題は、このような入力ハンドラ内で正常な動作を取得する方法である:「特別」でevalの唯一の方法を呼んでいるか、入力されたときの通常の動作をreadlineのために、この時点でフォールバックすることは可能であろう(つまり、accept-line
関数を何らかの方法で呼び出しますが、これは通常\C-M
にバインドされています(bind -P
)。私はまた、対話型のコマンドのリダイレクト、歴史、表示プロンプトとコマンドの結果を表示する前に、手動で複数行の式を処理の世話をする必要がevalをベースとしたソリューションで
...