在输入所在的脚本中使用带有[TAB]的bash自动完成功能

时间:2013-12-07 01:09:49

标签: bash shell bash-completion

我有一个bash脚本,要求用户输入文件名。我希望脚本接受部分文件名,例如/ b,并且脚本应输出包含与该部分名称匹配的每个文件的文件列表。例如:

有一些名为
的文件 animal
bat
boo
bury
/

然后输入/b会导致bat boo bury。如果用户输入/animal/c,程序应该导致所有以动物文件夹中的c开头的文件。

基本上我试图通过脚本中的静态输入来获得[TAB]的效果。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

不要使用制表符完成。使用globs。如果存在这些文件或目录,/b*将匹配/bat/boo/bury

#!/bin/bash 
shopt -s nullglob
IFS= read -p "Enter a full or partial name: " -r filename
for f in "$filename"*
do
    echo "Possible match: $f" 
done