bash-autocompleteが特定のスクリプトの特定のファイル形式を認識するようにします。

bash-autocompleteが特定のスクリプトの特定のファイル形式を認識するようにします。

bash特定の特定のファイル形式を識別する方法はscript

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:

だから私が実行したいとき:bashsオートコンプリートも存在するかどうかをscript.sh myfile.ly提案します。私はこのスクリプトが(便宜上ではなく)ファイルを読み取るだけであることをbashが知りたいと思います。myfile.pdfmyfile.midi*.ly

ベストアンサー1

アイテムに~/.bashrc次のアイテムを追加してオートコンプリートを有効にできますscript.sh

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

この-fオプションはファイル名を指定する-Xフィルタパターンです。 (フィルタパターンはパターンと一致する値を削除するため、パターンを!無効にして*.lyそれ以外のすべてのファイル名を削除するために使用されます。

おすすめ記事