我有一个脚本(我们称之为myscript
),我想为具有特定扩展名(例如.txt
)的文件启用自动完成参数。我可以简单地通过以下方式做到这一点:
complete -f -X '!*.txt' myscript
然后,给定文件a
、b
、a.txt
、b.txt
,ab.txt
输入“myscript”并按两次 Tab 键会得到:
$ myscript
a.txt ab.txt b.txt
我想要做的是允许通配符进一步过滤,例如,如果我输入“myscript *b*”并按两次 Tab 键,我想看到:
$ myscript *b*
ab.txt b.txt
不幸的是,这并没有给我任何自动完成功能。如果我删除自定义自动完成(或传递-o bashdefault
给complete
),它会给我:
$ myscript *b*
ab.txt b b.txt
如果我按 Enter 键,我不想看到b
结果或将其传递给脚本。有什么办法可以解决这个问题吗?