bash參考手冊之五(shell變數)續一

來源:互聯網
上載者:User

5.2 Bash變數

下面這些變數在Bash中設定或者使用,其他shell一般不會處理這些變數。

Bash使用的一些變數也在其他章節介紹:例如,控製作業的工具使用的變數,請參看‘作業控制變數’。

BASH

執行當前Bash執行個體的全路徑名。

BASHOPTS

冒號分隔的已啟用的shell選項列表。列表中的每個單詞都是內建命令shopt -s 的有效參數(參看‘shopt內建命令’)。BASHOPTS中出現的選項,都是執行shopt命令時,顯示狀態為‘on’的那些。當Bash啟動時,如果這個變數在環境中,在讀入開機檔案前,列表中的每個shell選項都會被啟用。該變數是唯讀。

BASHPID

擴充為當前Bash進程的進程ID。在某些情況下和$$的結果不同,例如不需要Bash重新初始化的子shell。

BASH_ALIASES

一個關聯陣列變數,其成員對應內部別名列表,該列表由內建命令alias維護。(參看‘Bourne Shell內建命令’)。增加到這個數組的元素會出現在別名列表中,刪除數組元素,則對應地從別名列表中移除了相應的別名。

BASH_ARGC

一個陣列變數,其值為當前bash執行呼叫堆疊中的每個幀中的參數個數。當前子程式(使用 . 或者source執行的shell函數或者指令碼)的參數個數位於堆棧的頂部。當執行一個子程式時,傳入的參數個數被壓入BASH_ARGC頂部。shell僅僅在擴充偵錯模式時才設定這個變數。(請參看'shopt內建'章節,對extdebug選項的描述)

BASH_ARGV

是一個陣列變數,包含當前bash執行呼叫堆疊中的所有參數。最後一個子程式調用的最後一個參數在堆棧的頂部;初始呼叫的第一個參數在底部。一個子程式被執行時,它的參數被壓入BASH_ARGV。shell僅在擴充偵錯模式時設定BASH_ARGV,(見shopt內建命令關 於extdebug選項的描述)。

BASH_CMDS

是一個陣列變數,包含的成員對應於由hash內建命令維護的那些命令的內部hash表(見bourne shell內建命令)。增加到這個數組的元素會出現在hash表中,在這個數組中刪除的元素也從hash表中被刪除。

BASH_COMMAND

當前正在執行的或者正要執行的命令,除非shell因為陷阱正在執行一條命令,在這種情況下是發生陷阱時正在執行的命令。

BASH_ENV

如果這個變數被設定,當Bash被調用去執行一個shell指令碼時,它的值被擴充,並在指令碼執行之前作為開機檔案讀取,見Bash開機檔案。

BASH_EXECUTION_STRING

-c調用選項的命令參數。

BASH_LINENO

是一個陣列變數,它的成員是源檔案中的行號,每個行號對應被調用的FUNCNAME的成員。${BASH_LINENO[$i]} 是源檔案 (${BASH_SOURCE[$i+1]})中,${FUNCNAME[$i]}被調用時的行號,(或者,如果在另一個shell函數中引用,是${BASH_LINENO[$i-1]})。使用LINENO擷取當前的行號。

BASH_REMATCH

是一個陣列變數,它的成員是使用 ‘=~’ 二進位操作符作用於 [[ 條件命令(見條件構造)的結果。索引0的元素是匹配整個Regex的那部分字串。索引n的元素是匹配第n個括弧子運算式的那部分字串。此變數是唯讀。

BASH_SOURCE

是一個陣列變數,它的成員是源檔案名稱,其中定義的的shell函數名對應於FUNCNAME陣列變數。shell函數${FUNCNAME[$i]}在${BASH_SOURCE[$i]}檔案中定義,並且從${BASH_SOURCE[$i+1]}調用。

BASH_SUBSHELL

每產生一個子shell或者子shell環境時,增加1。初始值是0。

BASH_VERSINFO

是一個唯讀陣列變數(見數組),它的成員儲存著當前Bash執行個體的版本資訊。數群組成員如下:

BASH_VERSINFO[0]

主要的版本號碼(發行版)。

BASH_VERSINFO[1]

次要的版本號碼(發行版)。

BASH_VERSINFO[2]

補丁號。

BASH_VERSINFO[3]

構造版本。

BASH_VERSINFO[4]

發行版狀態(例如,beta1)。

BASH_VERSINFO[5]

MACHTYPE的值。

BASH_VERSION

當前Bash執行個體的版本號碼。

BASH_XTRACEFD

如果設定為對應於一個有效檔案描述符的一個整數,當‘set -x’ 啟用時,Bash將把產生的跟蹤輸出到那個檔案描述符。這樣就可以把跟蹤輸出內容中的診斷和錯誤資訊分開。當BASH_XTRACEFD被取消時,或者設定到一個新值時,該檔案描述符被關閉。取消BASH_XTRACEFD或著設定為空白串,會把跟蹤輸出發送到標準錯誤。注意,設定BASH_XTRACEFD到2(標準錯誤檔案描述符),然後取消設定,會造成標準輸出被關閉。

COLUMNS

當列印挑選清單時,由select命令用來決定終端寬度。當收到SIGWINCH訊號時,自動化佈建。

COMP_CWORD

是一個索引,包含當前游標位置的字${COMP_WORDS}。這個變數僅在由可程式化完成工具調用shell函數時可用。(見可程式化完成)

COMP_LINE

當前命令列。這個變數僅在shell函數和外部命令是由可程式化完成工具調用的情況下可用。(見可程式化完成)

COMP_POINT

當前命令開始時的當前游標位置。如果當前游標位置在當前命令的尾部,變數值等於${#COMP_LINE}。這個變數僅在shell函數和外部命令是由可程式化完成工具調用的情況下可用。(見可程式化完成)

COMP_TYPE

設定為一個整數值,對應於試圖完成的類型(該完成將調用一個完成函數):對於一般完成是TAB,對於後續tabs之後的列表完成是‘?’,對於部分字完成上的列表選擇是‘!’,如果字未被修改則是列表完成,或者,對於菜單完成是 ‘%’。這個變數僅在shell函數和外部命令是由可程式化完成工具調用的情況下可用。(見可程式化完成)

COMP_KEY

用來調用當前完成函數的鍵,(或者鍵序列的最後的鍵)。

COMP_WORDBREAKS

一組字元,執行字完成時,被Readline庫當作字分割符。如果COMP_WORDBREAKS取消設定,則它失去它的特殊屬性,即使它隨後被重設了。

COMP_WORDS

是一個陣列變數,由當前命令列中的獨立字組成。該行按Readline分割方式,使用COMP_WORDBREAKS分割。這個變數僅在shell函數和外部命令是由可程式化完成工具調用的情況下可用。(見可程式化完成)

COMPREPLY

是一個陣列變數,Bash從中讀取由shell函數和可程式化完成工具調用產生的可能的完成。(見可程式化完成)

COPROC

是一個陣列變數,用來儲存用於輸出和輸入的未命名coprocess。(見協同進程)

DIRSTACK

是一個陣列變數,包含目錄堆棧的當前內容。堆棧中出現的目錄,按照dirs內建命令的顯示結果順序顯示。給這個變數的成員賦值,可以用來修改堆棧中的目錄,但是必須使用pushd和popd內建命令來增加和刪除目錄。對這個變數的賦值,不會改變當前的目錄。如果DIRSTACK取消設定,則它失去它的特殊屬性,即使它隨後被重設了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.