Bash
讓 bash-autocomplete 辨識特定腳本的特定文件類型
如何
bash
辨識特定文件類型script
?例如,我寫了一個小腳本來編譯 a
lilypond-file
然後自動打開編譯好的#!/bin/bash run() { lilypond "$1" name=$(basename "$1" .ly) if [ -f "${name}.pdf" ]; then xpdf -cont -remote LilyPreview "${name}.pdf" & else printf "\\n file %s.pdf is not present..!\\n\\n" "$name" fi } run "$@"
我怎麼
bash
知道,只建議文件夾中的文件並*.ly
忽略具有相同基本名稱的文件。*.pdf``*.midi
更新 2.3:
所以當我想執行: 時,
script.sh myfile.ly
bashs 自動完成也會建議它們是否存在。我想讓 bash 知道這個腳本只想讀取文件(為了方便起見)。myfile.pdf``myfile.midi``*.ly
在您的
~/.bashrc
中,您可以添加類似這樣的內容來為您的 啟用自動完成功能script.sh
:
complete -f -X '!*.ly' script.sh
該
-f
選項指定文件名,並且-X
是過濾器模式(請注意,過濾器模式會刪除與模式匹配的值,因此!
用於否定模式,以便*.ly
刪除除此之外的所有文件名。