使 bash-autocomplete 识别特定脚本的特定文件类型

使 bash-autocomplete 识别特定脚本的特定文件类型

如何bash识别特定的特定文件类型script

例如,我编写了一个小脚本来编译 a lilypond-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.ly,bashs 自动完成也会建议它们myfile.pdf是否myfile.midi存在。我想让 bash 知道这个脚本只想读取*.ly文件(而不是为了方便)。

答案1

在您的 中~/.bashrc,您可以添加类似的内容来为您的 启用自动完成功能script.sh

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

-f选项指定文件名,并且-X是过滤器模式(请注意,过滤器模式会删除与该模式匹配的值,因此!用于否定该模式,以便*.ly删除除此之外的所有文件名。

相关内容