Dat*_*643 5 bash scripts auto-completion
我有一个脚本,当用户在目录中输入文件名时,会对该文件执行自动标记操作(mp3 标记)。
我的问题:输入我想要标记的每首歌曲的确切文件名真的很乏味,我想知道当我输入文件名时是否可以实现选项卡自动完成。
我的脚本的开头:
echo "Enter name of file to be tagged"
read -e FileName
FileFindTest=$(find ~/Downloads/"$FileName")
echo "$FileFindTest"
Run Code Online (Sandbox Code Playgroud)
令人惊讶的是(对我来说),read使用该-e选项可以自动完成简单的文件/文件夹。
要在您的示例中使用它(我已经注意到我的更改)
\n\necho "Enter name of file to be tagged:"\n\ncd ~/Downloads ## cd to Downloads folder for autocomplete\n\nread -e FileName\n\nFileFindTest="$(find ~/Downloads/"$FileName")" ## quoted \n\necho "$FileFindTest"\nRun Code Online (Sandbox Code Playgroud)\n\n在这种情况下,当要求输入时,它将自动完成“下载”文件夹中的文件/文件夹。
\n\n例如,假设您的下载文件夹中有以下文件:
\n\n~/Downloads\n\xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Pop/\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80PopSong.mp3\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Song1.mp3\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Song5.mp3\nRun Code Online (Sandbox Code Playgroud)\n\n然后当你会得到以下结果时(按显示Tab时)<TAB>
P<TAB>\nPop/\n\nS<TAB>\nSong1.mp3 Song5.mp3\n\nPopSong.mp3<TAB>\n# (nothing found here, as it\'s searching in Downloads/ only not Pop/)\n\nPop/P<TAB>\nPopSong.mp3\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
6157 次 |
| 最近记录: |