Bash 反引号环境中的文件名制表符补全

Bash 反引号环境中的文件名制表符补全

我在 Ubuntu 10.04 上,在反引号内使用 bash 补全时遇到了一点小问题。下面是一个例子来说明:

我将电台的流媒体 URL 保存在文本文件中,然后我通常通过输入以下内容来开始收听

$ mplayer `cat ~/stations/some.fm`

如果我可以在以下情况下使用制表符补全功能,那就太好了:

$ mplayer `cat ~/stations/<tab>

但是,在这种情况下,Tab 补全似乎不匹配文件,只匹配目录。所以我得到

$ mplayer `cat ~/stations/<tab>
subdir1       subdir2
$ mplayer `cat ~/stations/

但没有文件!解决方法是使用

$ cat ~/stations/some.fm | xargs mplayer

在这种情况下,制表符补全可以工作,但我更喜欢使用反引号版本。这不仅适用于这个示例,而且在许多其他情况下也困扰着我。

这里有人知道如何修复这个问题/过滤器在哪里定义?

答案1

使用:

$ mplayer $(cat ~/stations/<tab>

相反,它做同样的事情。

相关内容