我正在尝试编写一个bash完成函数,该函数适用于包含空格和标点符号的字符串,甚至引号可能在那里。
我从文件中用sed
提取这些字符串,因此将它们作为几行文本,其中每行包含一个目标字符串以便完成。但是,我试图将其传递给compgen -W
的所有方法,我总是只完成单个单词。
答案 0 :(得分:0)
有一个变量COMP_WORDBREAKS
,用于定义哪些字符被视为单词的分隔符。调整此变量可以尝试实现您想要的效果。
来自bash(1):
COMP_WORDBREAKS - 执行单词完成时,Readline库将其视为单词分隔符的字符集。如果未设置COMP_WORDBREAKS,则会丢失其特殊属性,即使它随后被重置。