如何獲得 bash 完成結果?

如何獲得 bash 完成結果?

有沒有一種很好的方法來列印(例如到標準輸出)bash 中命令的所有可能完成的列表(如果我鍵入命令,然後按選項卡,它會給我的列表)?

編輯:我想這不是很清楚,現在我又讀了一遍。我知道如何手動完成。我想以程式設計方式完成它。

答案1

bash 沒有一個函數可以做到這一點。可編程完成很大程度上取決於各種參數,例如遊標位置...

eval $(complete -p 'git' | sed s/^complete/compgen/)

似乎能工作,但很脆弱。

答案2

TAB兩次。大多數類似 BASH 的 shell 都會列出給定子字串的所有符合的自動完成選項。

例如

root@host$apt-get up

TAB在此命令上按兩次將列出UpdateUpgrade

答案3

確保您已bash-completion安裝該軟體包。根據您的安裝類型,預設可能會也可能不會包含它,如果不是,只需使用yum或來取得它apt。安裝後,您需要登出並重新登入或重新啟動.bashrc才能使用它。

@Amazed 對於如何使用它很準確。

答案4

我認為您所要求的基本上是以給定字串開頭的所有命令的列表。您應該能夠透過獲取系統上所有可執行檔案的清單並透過 grep 運行它們來做到這一點。

相關內容