将字符串放入命令行

将字符串放入命令行

我正在制作一个 bash 函数,它显示一个绑定到pgdown 浏览窗口的菜单,其中列出了我的历史记录(例如 4dos/4nt 等)。我已经这样做了,所以一行总是突出显示。

$pos 是我希望列表在历史记录中开始的位置

 $ function hidown (){ if [ "$down" -gt 1 ]; then ((--down)); else down=100; fi ; hismenu_down "$down"; }  
 $ bind -x '"\e[6~":"hidowm"' 
 $ down=100

`

      function hismenu_down()  
      { 
        pos=$1; hilength=10; hirange="$(($hilength+$pos))";  
        hisstring=$(history | tail -n $hirange)
        for ((i=hilength; i>=0;  --i)); do
            if [ $i == 6 ]; then tput setaf 7; else tput setaf 6; fi;
            tput cup $i 55; 
            printf  "$hisstring" | tail -n "$(($i+$pos))" | head -n1 |  cut -c1-105; 
       done; tput sgr0; tput rc;
      }

我希望在命令行中输出突出显示的文本,因此我只需在按回车键执行命令之前输入回车键或编辑文本即可。

我还将临时绑定密钥esc以从命令行中删除代码(以及可能的其他操作以从历史列表中删除代码),同时重新绑定相同的密钥,以便随后绑定到其默认值。

但这部分我可以自己弄清楚。我所要求的只是这个 - 如何将字符串放入命令行?

相关内容