「-」フラグを完了しようとしたときのcompgen使用エラー

TopherIsSwell

コマンドのbash補完を実行しようとしていますが、フルワードコマンドではすべてが正常に機能していますが、「-」フラグを補完しようとすると、次のコード(後にcomplete -F _keybase keybase)を使用して、 2つのタック(つまりkeybase --h<TAB>)compgenの使用エラーが発生します。keybase --<TAB>ただし、期待どおりに機能します)。これはUbuntu18.04にあります。このファイルは、ログオンスクリプトの一部としてではなく、現在のシェルセッションで調達しています(まだ)。

_keybase() {
    local cur prev opts
    COMPREPLY=()
    cur="${COMP_WORDS[COMP_CWORD]}"
    prev="${COMP_WORDS[COMP_CWORD-1]}"

    #...code removed for brevity

    if [[ ${cur} == -* ]]; then
# complete the "--" parameters
        opts=$(keybase help advanced | grep -Po '\-\-[a-z\-]+' | tr "\n" " ")
        COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
    fi
}

これは私がタイプしたときに印刷されるものです keybase --h<TAB>

keybase --hbash: compgen: --: invalid option
compgen: usage: compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]

引用符のエスケープを微調整し、$ optの定義で改行を追加/削除し、compgenの2番目の引数として「-」を追加/削除しました(Debianの記事の説明のbash完了 keybase help advanced | grep -Po '\-\-[a-z\-]+' | tr "\n" " "出力の要請でこれらを追加しました

--api-dump-unsafe --api-timeout --api-uri-path-prefix --app-start-mode --bg-identifier-disabled --chat-db --code-signing-kids --config-file --use-root-config-file --db --debug --display-raw-untrusted-output --features --gpg --gpg-options --home --leveldb-num-files --local-rpc-debug-unsafe --log-file --ek-log-file --log-format --log-prefix --merkle-kids --no-debug --debug --pgpdir --gpgdir --pid-file --pinentry --proof-cache-size --proxy --push-disabled --push-save-interval --push-server-uri --pvl-kit --paramproof-kit --prove-bypass --remember-passphrase --run-mode --scraper-timeout --secret-keyring --server --session-file --slow-gregor-conn --read-deleted-sigchain --socket-file --standalone --timers --tor-hidden-address --tor-mode --tor-proxy --updater-config-file --upgrade-per-user-key --use-default-log-file --user-cache-size --vdebug --disable-team-auditor --disable-merkle-auditor --disable-search-indexer --disable-bg-conv-loader --enable-bot-lite-mode --auto-fork --no-auto-fork --help --generate-bash-completion --version 

そして、compgenが実行されると予想されるコマンドをエコーすると、期待するコマンドが取得されecho "compgen -W \"${opts}\" -- ${cur}"、実際にターミナルで正常に実行されるコマンドが表示されます

compgen -W "--api-dump-unsafe --api-timeout --api-uri-path-prefix --app-start-mode --bg-identifier-disabled --chat-db --code-signing-kids --config-file --use-root-config-file --db --debug --display-raw-untrusted-output --features --gpg --gpg-options --home --leveldb-num-files --local-rpc-debug-unsafe --log-file --ek-log-file --log-format --log-prefix --merkle-kids --no-debug --debug --pgpdir --gpgdir --pid-file --pinentry --proof-cache-size --proxy --push-disabled --push-save-interval --push-server-uri --pvl-kit --paramproof-kit --prove-bypass --remember-passphrase --run-mode --scraper-timeout --secret-keyring --server --session-file --slow-gregor-conn --read-deleted-sigchain --socket-file --standalone --timers --tor-hidden-address --tor-mode --tor-proxy --updater-config-file --upgrade-per-user-key --use-default-log-file --user-cache-size --vdebug --disable-team-auditor --disable-merkle-auditor --disable-search-indexer --disable-bg-conv-loader --enable-bot-lite-mode --auto-fork --no-auto-fork --help --generate-bash-completion --version " -- --h
--home
--help
TopherIsSwell

コードはFedora29で動作することが判明し、これはUbuntuのバグであり、スクリプトのバグではないと私は信じています。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Synergyを使用しようとしたときのreadfエラー

分類Dev

pipを使用しようとしたときのランタイムエラー

分類Dev

CASTとCASEWHENを一緒に使用しようとしたときのエラー

分類Dev

PaypalAPIを使用しようとしたときにエラー500.19

分類Dev

ArrayListでforループを使用しようとしたときの.lengthエラー

分類Dev

FacebookAPIを使用しようとしたときのエラーメッセージ

分類Dev

VBAコンパイルエラー:グラフの範囲を設定しようとしたときに構文エラーが発生しました

分類Dev

JSONを取得しようとしたときのAngularエラー

分類Dev

Arduinoを実行しようとしたときのエラー

分類Dev

AngularProjectを起動しようとしたときのエラー

分類Dev

AngularTestBedを使用しようとしたときの奇妙なRxJSエラー

分類Dev

Fake.FscHelperを使用しようとしたときのFAKEエラー

分類Dev

@RunWith(SpringRunner.class) を使用しようとしたときの初期化エラー

分類Dev

SSRS 式で Where 句を使用しようとしたときのエラー

分類Dev

importjava.util.Scannerを使用しようとしたときのエラー

分類Dev

以下のプログラムを実行しようとしたときのコンパイラエラー

分類Dev

画像のEXIFタグを取得しようとしたときにエラーが発生しました

分類Dev

画像をイコライズしようとしたときのセグメンテーションエラー

分類Dev

KNNの決定境界をグラフ化しようとしたときにエラーが発生しました

分類Dev

バインドされたパラメータを使用しようとしたときのROracleエラー

分類Dev

タグ付き共用体を更新しようとしたときの驚くべきタイプエラー

分類Dev

xts時系列をラグしようとしたときに長さがゼロのエラー?

分類Dev

起動時にプログラムを起動しようとしたときのエラー

分類Dev

Paymentwallの例を使用しようとしたときに構文エラーが発生しました

分類Dev

大きなファイルをコピーしようとしたときのNIOのエラー

分類Dev

グラフでコンポーネントを検索しようとしたときのランタイムエラー

分類Dev

Volleyを使用してデータベースを更新しようとしたときのPHPエラー

分類Dev

asp.net を使用してデータベースを更新しようとしたときの例外エラー

分類Dev

コマンドライン出力をファイルに保存しようとしたときのエラー

Related 関連記事

  1. 1

    Synergyを使用しようとしたときのreadfエラー

  2. 2

    pipを使用しようとしたときのランタイムエラー

  3. 3

    CASTとCASEWHENを一緒に使用しようとしたときのエラー

  4. 4

    PaypalAPIを使用しようとしたときにエラー500.19

  5. 5

    ArrayListでforループを使用しようとしたときの.lengthエラー

  6. 6

    FacebookAPIを使用しようとしたときのエラーメッセージ

  7. 7

    VBAコンパイルエラー:グラフの範囲を設定しようとしたときに構文エラーが発生しました

  8. 8

    JSONを取得しようとしたときのAngularエラー

  9. 9

    Arduinoを実行しようとしたときのエラー

  10. 10

    AngularProjectを起動しようとしたときのエラー

  11. 11

    AngularTestBedを使用しようとしたときの奇妙なRxJSエラー

  12. 12

    Fake.FscHelperを使用しようとしたときのFAKEエラー

  13. 13

    @RunWith(SpringRunner.class) を使用しようとしたときの初期化エラー

  14. 14

    SSRS 式で Where 句を使用しようとしたときのエラー

  15. 15

    importjava.util.Scannerを使用しようとしたときのエラー

  16. 16

    以下のプログラムを実行しようとしたときのコンパイラエラー

  17. 17

    画像のEXIFタグを取得しようとしたときにエラーが発生しました

  18. 18

    画像をイコライズしようとしたときのセグメンテーションエラー

  19. 19

    KNNの決定境界をグラフ化しようとしたときにエラーが発生しました

  20. 20

    バインドされたパラメータを使用しようとしたときのROracleエラー

  21. 21

    タグ付き共用体を更新しようとしたときの驚くべきタイプエラー

  22. 22

    xts時系列をラグしようとしたときに長さがゼロのエラー?

  23. 23

    起動時にプログラムを起動しようとしたときのエラー

  24. 24

    Paymentwallの例を使用しようとしたときに構文エラーが発生しました

  25. 25

    大きなファイルをコピーしようとしたときのNIOのエラー

  26. 26

    グラフでコンポーネントを検索しようとしたときのランタイムエラー

  27. 27

    Volleyを使用してデータベースを更新しようとしたときのPHPエラー

  28. 28

    asp.net を使用してデータベースを更新しようとしたときの例外エラー

  29. 29

    コマンドライン出力をファイルに保存しようとしたときのエラー

ホットタグ

アーカイブ