問題タブ [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 に答える
5638 参照

bash - ネストされた複数レベルのサブコマンドをオートコンプリートするにはどうすればよいですか?

独自のコマンド セットのオートコンプリートまたはタブ コンプリート機能を開発しようとしています。

たとえば、foo が私のバイナリであるとします。

主なコマンドconfigureshow.

次に、を選択するconfigureと、サブコマンドが表示され、次のようCMDSPなりNPUます。

タブ補完と最初のレベルの表示方法しか知りません。どうすれば 2 番目のレベルも取得できますか?

これを入れ/etc/completion.dます。

私のコード:

CM DSP NPUの下にサブコマンドを追加する方法に行き詰まっていますconfigure

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

bash - bash complete() のスペースとサフィックス

compgenシェルの組み込みには2つの問題があります。単純な bash の_filedirような (を使用ls) コードで表示してみます。

この場合、cur=="usr/li"その時prefix=="/usr/"sufix=="li"

私には2つの困難があります。スペースと交換。例えば:

私は得る:

私は欲しい:

このコードは単なる例です。

0 投票する
2 に答える
593 参照

linux - サブプロセス ライブラリが compgen を実行しない

Linux (Lubuntu) マシンで使用できるすべてのコマンドのリストを作成しようとしています。そのリストを Python でさらに操作したいと思います。通常、コンソールにコマンドを一覧表示するには、「compgen -c」と記述し、結果を stdout に出力します。

Python サブプロセス ライブラリを使用してそのコマンドを実行したいのですが、エラーが発生し、理由がわかりません。

コードは次のとおりです。

これが私が得ているエラーです:

私は立ち往生しています。これで私を助けてくれませんか?サブプロセスを使用して compgen コマンドを実行するにはどうすればよいですか?

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

bash - compgen を使用して別のコマンドのオートコンプリートを取得します。どのフラグを使用しますか?

カスタムのオートコンプリート コマンドがあります (それを と呼びますcommandA)

commandAのcommandB最初の引数のオートコンプリート オプションを盗みたい

たとえば、commandA の引数 1 のオプションは次のとおりです。

abcdef abcabc abc123

上記のリストを生成するcompgen -? "commandA"か、その行に沿って何かをしたいと思い ます。compgen -? "commandA abc"

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

bash - Bash : オートコンプリート、エコー、カーソル移動

オートコンプリート スクリプトをコーディングしようとしています。また、何らかの説明を出力する必要があります。自動補完と説明の取得を管理する関数が 1 つあります。オートコンプリート関連の部分は正常に動作するのですが、ヘルプを表示したいときに問題があります。要するに、これは私が今持っているものです:

私が好きなもの:

オートコンプリートと出力の間に競合はありません。説明は、myOption1 が完了した場合にのみ表示できます。(myOpt は myOption1 として完成されるため、説明は表示されません)。私はそれを機能させるためにいくつかの試みをしましたが、ステップが欠けていると思います. 「myOption1 の説明」は「エコー」です。compgenが何らかの値を待っているので、関連していると思います(今のところ何も与えていません)。いくつかのエスケープ文字、スペースを使用して compgen をだまそうとしました: 成功しませんでした。オートコンプリート スクリプトは、この説明の後も引き続き実行する必要があります。

助けてくれてありがとう;-)

コル

0 投票する
3 に答える
1203 参照

bash - bashでファイル内のすべての変数を一覧表示する

bash スクリプトを作成するときは、コード内のいくつかの異なる場所でグローバル変数を宣言して読みやすさを低下させるよりも、引数を取り、その引数に基づいて操作を実行する自己完結型の関数を作成するのが好きです。

この問題は、複数の変数を使用する必要がある関数がある場合に発生します。関数に 10 個の変数などを渡すのは単純に醜いので、単純な連想配列を使用できます。

これらの変数を外部ファイルで宣言したい場合は、「source」コマンドを使用してそれらをすべてインポートできます。

問題は、このファイル内でのみ宣言された変数をリストして、連想配列を構築できるようにするにはどうすればよいですか? 「compgen」とループの組み合わせを使用して、変数のリストから連想配列を作成することができましたが、名前に関係なく、ファイル内で見つかった変数のみをリストする方法があるため、ループすることができますそれらと私の配列を構築しますか?

0 投票する
0 に答える
256 参照

bash - compgen はディレクトリに降りません

bash_completion スクリプトを定義しました。ほとんどのコマンドでデフォルトで発生する基本的なファイルベースの補完にフォールバックしたい場合があります。これを行うために を使用してcompgenいますが、サブディレクトリに降りることができません。

という名前のディレクトリを含むディレクトリ内から compgen を実行しているとしbinます。私が走るとき、compgen -f bi私は与えられbinます。これが返されることを期待し、bin/TAB をもう一度押してbinディレクトリの内容に降りることができるようにします。しかし代わりに、complete値を 1 つだけ取得し、処理の最後に達したと想定します。ls bi[TAB]これは、bash の補完が一般的に動作するように見える方法とは異なりますls bin/

これを機能させることができないため、当分の間、正しい bash 補完を実行するためにディレクトリに降りるカスタム コードを作成しましたが、これをcompgen直接実行する方法が必要です。