【发布时间】:2021-11-13 07:46:35
【问题描述】:
我有以下一个 sed 衬垫,用于美化 lsing 我的所有 .desktop 文件的输出。
ls -1 | sed -e 's/\.desktop$//' | sed -e 's/\org.gnome.//' | grep "$name" | head -1
目前我有一个读取命令,我通过管道将其输入到 $name 变量中以供输入。你能给我一些关于如何使其动态输出或自动完成我输入的内容的想法吗?就像 Rofi 或其他应用启动器一样?
【问题讨论】:
-
查看
readline的制表符补全。在您键入时,我不知道有任何基于终端的自动建议。你可以搜索“命令行自动完成 Linux”,看看会出现什么。了解ls到 4 管道、sed的 2 次调用以及grep和head各一次的调用远非理想。find命令可能可以满足您的所有需求。 -
谢谢伙计,当我说自动完成时,我的意思是 ls 命令看起来像是自动完成您输入的 ls 搜索,而不是命令自动完成只是为了澄清。
-
当然,我理解你的意思是你开始输入,然后显示一个列表或类似的列表,其中包含以该前缀开头的所有命令。如果我弄错了,我深表歉意。在使用 Linux 桌面将近两个十年之后,我不知道有任何东西可以为命令行提供您会看到的东西,例如在文本编辑器中。没有技术原因它不能,但按照惯例,命令行通常依靠
readline使用tab循环浏览或显示前缀命令。history允许搜索过去的命令行,并且 shell 提供了快捷方式。
标签: bash