問題タブ [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.
bash - ネストされた複数レベルのサブコマンドをオートコンプリートするにはどうすればよいですか?
独自のコマンド セットのオートコンプリートまたはタブ コンプリート機能を開発しようとしています。
たとえば、foo が私のバイナリであるとします。
主なコマンドconfigure
とshow
.
次に、を選択するconfigure
と、サブコマンドが表示され、次のようCM
にDSP
なりNPU
ます。
タブ補完と最初のレベルの表示方法しか知りません。どうすれば 2 番目のレベルも取得できますか?
これを入れ/etc/completion.d
ます。
私のコード:
CM
DSP
NPU
の下にサブコマンドを追加する方法に行き詰まっていますconfigure
。
bash - bash complete() のスペースとサフィックス
compgen
シェルの組み込みには2つの問題があります。単純な bash の_filedir
ような (を使用ls
) コードで表示してみます。
この場合、cur=="usr/li"
その時prefix=="/usr/"
とsufix=="li"
私には2つの困難があります。スペースと交換。例えば:
私は得る:
私は欲しい:
このコードは単なる例です。
linux - サブプロセス ライブラリが compgen を実行しない
Linux (Lubuntu) マシンで使用できるすべてのコマンドのリストを作成しようとしています。そのリストを Python でさらに操作したいと思います。通常、コンソールにコマンドを一覧表示するには、「compgen -c」と記述し、結果を stdout に出力します。
Python サブプロセス ライブラリを使用してそのコマンドを実行したいのですが、エラーが発生し、理由がわかりません。
コードは次のとおりです。
これが私が得ているエラーです:
私は立ち往生しています。これで私を助けてくれませんか?サブプロセスを使用して compgen コマンドを実行するにはどうすればよいですか?
bash - compgen を使用して別のコマンドのオートコンプリートを取得します。どのフラグを使用しますか?
カスタムのオートコンプリート コマンドがあります (それを と呼びますcommandA
)
commandAのcommandB
最初の引数のオートコンプリート オプションを盗みたい
たとえば、commandA の引数 1 のオプションは次のとおりです。
abcdef
abcabc
abc123
上記のリストを生成するcompgen -? "commandA"
か、その行に沿って何かをしたいと思い
ます。compgen -? "commandA abc"
bash - Bash : オートコンプリート、エコー、カーソル移動
オートコンプリート スクリプトをコーディングしようとしています。また、何らかの説明を出力する必要があります。自動補完と説明の取得を管理する関数が 1 つあります。オートコンプリート関連の部分は正常に動作するのですが、ヘルプを表示したいときに問題があります。要するに、これは私が今持っているものです:
私が好きなもの:
オートコンプリートと出力の間に競合はありません。説明は、myOption1 が完了した場合にのみ表示できます。(myOpt は myOption1 として完成されるため、説明は表示されません)。私はそれを機能させるためにいくつかの試みをしましたが、ステップが欠けていると思います. 「myOption1 の説明」は「エコー」です。compgenが何らかの値を待っているので、関連していると思います(今のところ何も与えていません)。いくつかのエスケープ文字、スペースを使用して compgen をだまそうとしました: 成功しませんでした。オートコンプリート スクリプトは、この説明の後も引き続き実行する必要があります。
助けてくれてありがとう;-)
コル
bash - bashでファイル内のすべての変数を一覧表示する
bash スクリプトを作成するときは、コード内のいくつかの異なる場所でグローバル変数を宣言して読みやすさを低下させるよりも、引数を取り、その引数に基づいて操作を実行する自己完結型の関数を作成するのが好きです。
この問題は、複数の変数を使用する必要がある関数がある場合に発生します。関数に 10 個の変数などを渡すのは単純に醜いので、単純な連想配列を使用できます。
これらの変数を外部ファイルで宣言したい場合は、「source」コマンドを使用してそれらをすべてインポートできます。
問題は、このファイル内でのみ宣言された変数をリストして、連想配列を構築できるようにするにはどうすればよいですか? 「compgen」とループの組み合わせを使用して、変数のリストから連想配列を作成することができましたが、名前に関係なく、ファイル内で見つかった変数のみをリストする方法があるため、ループすることができますそれらと私の配列を構築しますか?
bash - compgen はディレクトリに降りません
bash_completion スクリプトを定義しました。ほとんどのコマンドでデフォルトで発生する基本的なファイルベースの補完にフォールバックしたい場合があります。これを行うために を使用してcompgen
いますが、サブディレクトリに降りることができません。
という名前のディレクトリを含むディレクトリ内から compgen を実行しているとしbin
ます。私が走るとき、compgen -f bi
私は与えられbin
ます。これが返されることを期待し、bin/
TAB をもう一度押してbin
ディレクトリの内容に降りることができるようにします。しかし代わりに、complete
値を 1 つだけ取得し、処理の最後に達したと想定します。ls bi[TAB]
これは、bash の補完が一般的に動作するように見える方法とは異なりますls bin/
。
これを機能させることができないため、当分の間、正しい bash 補完を実行するためにディレクトリに降りるカスタム コードを作成しましたが、これをcompgen
直接実行する方法が必要です。