Bash

使用者定義的 bash_completion.d 腳本的標準位置?

  • June 23, 2020

我擁有進入 Linux (Suse) 機器的使用者訪問權限(無 root),我在其中開發了一些 bash 腳本和相應的 bash 自動完成規則。

由於腳本僅屬於我的使用者,因此我只需要對我“有效”的完整規則(部分原因是我沒有 root 寫入權限),/etc/bash_completion.d/因此不能將我的 bash_completion 腳本放入文件夾中。

目前我命名我的文件.bash_completion.myscript並直接從我的 .source中獲取它.bashrc,但我只是想知道是否有任何其他“標準”方式來實現這些結果,在 bash 實現中已經考慮過。

例如,創建一個文件夾/home/myuser/.bash_completion.d/

使用~/.bash_completion文件。

Bash 完成常見問題解答

問:如何插入我自己的本地完成,而不必在

每次發布新版本時重新插入它們?

A. 將它們放在 ~/.bash_completion 中,在主完成腳本的末尾進行解析。另請參閱下一個問題。

問:我編寫/維護包 X 並希望維護我自己

的此包的完成程式碼。我應該把它放在哪里以確保

互動式 bash shell 會找到它並獲取它?

A. 將其安裝在bash-completion 的 pkgconfig 文件變數指向的目錄之一中。有兩種

選擇:推薦的一種是“completionsdir”(使用

“pkg-config –variable=completionsdir bash-completion”獲取),

根據呼叫命令的名稱按需載入完成,

所以一定要命名你的相應的完成文件,並包括

例如符號連結,以防文件

為多個命令提供完成。出於

向後兼容性原因而存在的另一個是“compatdir”(使用

“pkg-config –variable=compatdir bash-completion”獲取它

引用自:https://serverfault.com/questions/506612