Bash 中的 declare 命令
-
declare
命令的語法使用 Bash -
選項作為 Bash 中
declare
命令的一般引數 -
Bash 中
declare
命令中使用的整數型別 - 在 Bash 中宣告只讀變數
-
在 Bash 中分配變數時使用
小寫
和大寫
轉換 -
在 Bash 中使用
Subshells
匯出變數 -
在 Bash 中檢查是否指定了任何
屬性
-
檢查 Bash 中的
函式
定義
Bash 使用可以通過命令設定的屬性來允許類似型別的行為,因為 bash 型別系統不健壯。
declare
是一個內建的 Bash 命令,允許你在 shell 範圍內更改變數的特徵。
它還可以對變數進行速寫
宣告。最後,它使你可以訪問變數。
declare -A
建立一個 associative array
變數,一個鍵值對陣列,其值由關鍵字索引。
除了影響其行為的變數之外,還可以為 Bash
函式賦予屬性。
declare
命令的語法使用 Bash
$ declare [-a] [-A] [-f] [-F] [-g] [-i] [-l] [-n] [-r]
[-t] [-u] [-x] [-p] [name[=value]] [name[=value]] ...
選項作為 Bash 中 declare
命令的一般引數
declare
內建命令接受以下選項作為通用引數:
$ bash -c "help declare"
輸出:
declare: declare [-aAfFgilnrtux] [-p] [name[=value] ...]
Set variable values and attributes.
Declare variables and give them attributes. If no NAMEs are given,
display the attributes and values of all variables.
Options:
-f restrict action or display to function names and definitions
-F restrict display to function names only (plus line number and
source file when debugging)
-g create global variables when used in a shell function; otherwise
ignored
-p display the attributes and value of each NAME
Options which set attributes:
-a to make NAMEs indexed arrays (if supported)
-A to make NAMEs associative arrays (if supported)
-i to make NAMEs have the `integer` attribute
-l to convert the value of each NAME to lower case on assignment
-n make NAME a reference to the variable named by its value
-r to make NAMEs `readonly`
-t to make NAMEs have the `trace` attribute
-u to convert the value of each NAME to upper case on assignment
-x to make NAMEs export
Using `+` instead of `-` turns off the given attribute.
Variables with the integer attribute have arithmetic evaluation (see
the `let` command) performed when the variable is assigned a value.
When used in a function, `declare` makes NAMEs local, as with the `local`
command. The `-g` option suppresses this behavior.
Exit Status:
Returns success unless an invalid option is supplied or a variable
assignment error occurs.
下面是一些 help
命令的示例,以檢視它們在終端中的顯示方式。值得注意的是,最後一個對於我們的 Windows Git Bash
使用者來說是一個故障保護。
現在你已經閱讀了 bash declare
的介紹和手冊頁,是時候檢視一些使用 bash declare
的實際示例了。
Bash 中 declare
命令中使用的整數型別
使用 -i
標誌將變數宣告為整數。你可以在下面的示例中看到變數 age
被指定為 integer
型別。
當你分配不同型別的字串
值時,你可能會看到一條錯誤訊息,上面寫著 Not the correct type
;而不是丟擲錯誤,錯誤變數將設定為零。
$ declare -i num=7
$ echo $num
輸出:
7
結果,將整數型別重新分配給字串會產生 0
。
$ num=string
$ echo $num
輸出:
0
在 Bash 中宣告只讀變數
這個編碼詞描述了一個變數如何被賦予一個值並且不能被程式設計師或機器修改。它在整個程式的生命週期內保持不變。
使用 -r
標誌使你的變數常量為只讀。
$ declare -r num=7
輸出:
bash: declare: num: readonly variable
如你所見,輸出結果顯示 readonly
變數。
在 Bash 中分配變數時使用小寫
和大寫
轉換
將變數分配給 bash 時,可以使用 -l
小寫和 -u
大寫標誌將其從小寫更改為大寫,反之亦然。
$ declare -l name="THANOS"
$ declare -u name1="thanos"
$ echo $name $name1
輸出:
thanos THANOS
在 Bash 中使用 Subshells
匯出變數
如果你以前使用過 bash
,你可能已經注意到人們使用 export 命令將宣告的變數匯出到指令碼或 shell
會話中的子 shell。我們可以用 declare
命令做同樣的事情。
-x
標誌應該用於匯出,而+x
標誌將阻止屬性被匯出。
$ declare -x name=thor
$ sh -c "echo $name"
輸出:
thor
在 Bash 中檢查是否指定了任何屬性
使用 -p
標誌,我們可以檢視屬性 variable
是否已定義。
$ a=5;b=6;c=7
$ declare -p a b c
輸出:
declare -- a="5"
declare -- b="6"
declare -- c="7"
指定關鍵字後,將有兩個破折號 --
。宣告 -a
陣列。宣告 -n
數字。它用於顯示變數的型別 nameref
。
如果沒有宣告,它只會顯示。
檢查 Bash 中的函式
定義
-F
和 -f
標誌可用於檢查函式是否已宣告和定義。我正在製作一個簡單的 inevitable_thanos
功能。
$ function inevitable_thanos(){ echo "ironman"; }
$ declare -f
輸出:
inevitable_thanos ()
{
echo "ironman"
}
quote ()