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.pdf
myfile.midi
*.ly
答え1
アイテムに~/.bashrc
次のアイテムを追加してオートコンプリートを有効にできますscript.sh
。
complete -f -X '!*.ly' script.sh
この-f
オプションはファイル名を指定する-X
フィルタパターンです。 (フィルタパターンはパターンと一致する値を削除するため、パターンを!
無効にして*.ly
それ以外のすべてのファイル名を削除するために使用されます。