Bash

讓 bash-autocomplete 辨識特定腳本的特定文件類型

  • December 16, 2018

如何bash辨識特定文件類型script

例如,我寫了一個小腳本來編譯 alilypond-file然後自動打開編譯好的pdf

#!/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.lybashs 自動完成也會建議它們是否存在。我想讓 bash 知道這個腳本只想讀取文件(為了方便起見)。myfile.pdf``myfile.midi``*.ly

在您的~/.bashrc中,您可以添加類似這樣的內容來為您的 啟用自動完成功能script.sh

complete -f -X '!*.ly' script.sh

-f選項指定文件名,並且-X是過濾器模式(請注意,過濾器模式會刪除與模式匹配的值,因此!用於否定模式,以便*.ly刪除除此之外的所有文件名。

引用自:https://unix.stackexchange.com/questions/489235