我有一个脚本,当用户在目录中输入文件名时,会对该文件执行自动标记操作(mp3 标记)。
我的问题:输入我想要标记的每首歌曲的确切文件名真的很繁琐,我想知道当我输入文件名时是否可以实现制表符自动完成功能。
我的脚本的开头:
输入文件名并定位文件
echo "Enter name of file to be tagged"
read -e FileName
FileFindTest=$(find ~/Downloads/"$FileName")
echo "$FileFindTest"
答案1
令人惊讶的是(对我来说),read
简单的文件/文件夹可以通过该-e
选项自动完成。
在您的示例中使用它(我已记录了我的更改)
echo "Enter name of file to be tagged:"
cd ~/Downloads ## cd to Downloads folder for autocomplete
read -e FileName
FileFindTest="$(find ~/Downloads/"$FileName")" ## quoted
echo "$FileFindTest"
在这种情况下,当要求输入时,它将自动完成下载文件夹中的文件/文件夹。
例如,假设您的下载文件夹中有以下文件:
~/Downloads
│
├───Pop/
│ └───PopSong.mp3
├───Song1.mp3
└───Song5.mp3
然后当你会得到以下结果(按下Tab时<TAB>
显示)
P<TAB>
Pop/
S<TAB>
Song1.mp3 Song5.mp3
PopSong.mp3<TAB>
# (nothing found here, as it's searching in Downloads/ only not Pop/)
Pop/P<TAB>
PopSong.mp3
答案2
我相信你会从阅读中受益如何创建具有自动完成功能的脚本?