問題タブ [compgen]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
142 参照

bash - 独自のスクリプト オプションで bash の「compgen」を使用するには?

私は初めてでcompgen、作業中のスクリプトに使用したいと考えています。このスクリプトは、次のように「コマンド」と「オプション」を引数として持つことができます。

次のような完了スクリプトを作成しました。

このスクリプトは「add」コマンドでは正常に機能しますが、「--path」オプションでは失敗します。例: 入力すると:

私は得る:

独自のスクリプト オプションの補完を正しく追加するにはどうすればよいですか?

0 投票する
1 に答える
53 参照

bash - Compgen と make: make レシピを compgen する方法はありますか?

Mac で BASH を実行compgen -c make しており、次の戻り値を取得しています。

しかし、私が欲しいものとすべきものは何ですか?取得する(および完了するときに取得する)は次のとおりです。

これは、自動化を行うさまざまな PHONY make ルールを表しています。


一般に、実行可能ツールを使用して、SHELL からこのリストをどのように生成しますcompgenか?

(これは理想的な質問です。なぜなら、python3からsubprocessは相互作用をシミュレートできず、もっと複雑なことをしなければならないからです)


これは重複候補の「make でターゲットを取得する方法 (言い換え)」とは異なります。(動作しない) コマンドは良い答えではないと思います。この質問はcompgenandmakeではなくmakeandに関するものです。の内部動作make:

しかし、正規表現を使用して高レベルの目的のために何らかの解決策を得ることができますか?

私の意見では、いいえ、なぜなら compgen は簡単で記憶に残るからです。一方、このクラッジは難しく、上に積み上げたコードにドラッグを導入します。


また、複製により、メイクファイルに変更を加えることができます。

私の場合、メイク ファイルは与えられたものと見なす必要があります。

したがって、より具体的には、makefile が与えられた場合、 make を調べて make を取得し、bash 補完の場合と同様にレシピのリストを出力できる、make 以外のツールを含むソリューションはありますか。

言い換えれば、メイクファイルへの書き込み権限を必要とせず、tty シミュレーターを使用してタブタブをシミュレートすることなく、任意のメイクファイルに対して (一般性を失うことなく)これを実行できますか?