Bashのmakeコマンドの後のTAB拡張ファイル名

Bashのmakeコマンドの後のTAB拡張ファイル名

pandocを使用して組織ファイルをマークダウンファイルに変換するmakefileを準備しています。その内容は次のとおりです(変換規則は参考用です)。


%.md: %.org 
    pandoc -t markdown -s $< -o $@ 

conversion: 
    pandoc -t markdown -s aa.org -o aa.md

どちらのルールも有効です。たとえば、次のように実行できます。

make aa.md

または

make conversion

効果がありました。さらに、bashでは以下を拡張できます。

make con\Tab 

オートコンプリートするには、Tabキーを使用してくださいconversion。しかし、ファイル名にオートコンプリート機能があると便利です。だから私は次のようなものが欲しい。同じフォルダにfilefortest.org私がbashで書いたファイルがあるとしましょう。

make ./fil\Tab

望むより!私はfilefortest自動的にやってみました。この目標を達成することは可能ですか?

PS。私が要求する機能は、単純なbashスクリプトを使用して簡単に取得できることを知っていますpandoc -t markdown -s $1.org -o $1.md。それで、この質問は私の好奇心からの質問です...

ベストアンサー1

はい、いいえ。

bashオートコンプリート機能は内部を見て、makefile内部のターゲットを読み、可能な選択に使用します。この場合の唯一の問題は、明確に定義されたターゲットのみを読むことです。パターンのある項目は無視されます。

したがって、必要なものを達成する方法は2つあります。

  1. %.md: %.orgスキーマを使用する代わりに、個々のファイルを手動で定義してください。
  2. CMakeまたは、そのいとこのいくつかを使用して詳細makefileを作成できます。

おすすめ記事