當我通過輸入鍵的readline rebind輸入此腳本時,我將通過自定義函數輸入的每一行都傳遞給應用程序,該自定義函數應呈現正常的bash行爲 - 除非當檢測到當前行是「特殊」: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
,根據bind -P
,通常與\C-M
綁定)?
隨着EVAL基礎的解決方案我必須採取的顯示結果之前手動處理多表達式,交互式命令,歷史,顯示提示和命令也重定向護理...