我有一个bash脚本,要求用户输入文件名。我希望脚本接受部分文件名,例如/ b,并且脚本应输出包含与该部分名称匹配的每个文件的文件列表。例如:
有一些名为
的文件
animal
bat
boo
bury
在/
然后输入/b
会导致bat boo bury
。如果用户输入/animal/c
,程序应该导致所有以动物文件夹中的c开头的文件。
基本上我试图通过脚本中的静态输入来获得[TAB]的效果。
感谢您的帮助!
答案 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