宣告變數,設定變數的值與屬性
語法
declare [-aAfFilrtux] [-p] [name[=value] ...]
1. 不加參數,顯示 shell 所有的變數名與值
2. 只加 -p,顯示 shell 所有的變數名,包含屬性和值
屬性表
a 數值索引陣列 (indexed array variable)
A 關聯式陣列 (Associative array variable)
i 整數 (integer)
r 唯讀 (readonly)
3. 加 -p 與想要的屬性 (a/A/i/r),顯示 shell 所有的變數中,有此屬性的變數
4. 加 -p 與想要的變數名 (name),顯示變數的屬性與值
5. 只加 -f,顯示 shell 所有的函式 (function)與函式內容
6. 只加 -F,顯示 shell 所有的函式 (function),不包含函式內容
7. 加 -n,賦予 nameref 屬性給變數名 (name),使變數名 (name) 成為另一個變數的參考,將被參考的變數賦予為變數名 (name) 的值
屬性表
a 數值索引陣列 (indexed array variable)
A 關聯式陣列 (Associative array variable)
i 整數 (integer)
r 唯讀 (readonly)
3. 加 -p 與想要的屬性 (a/A/i/r),顯示 shell 所有的變數中,有此屬性的變數
5. 只加 -f,顯示 shell 所有的函式 (function)與函式內容
7. 加 -n,賦予 nameref 屬性給變數名 (name),使變數名 (name) 成為另一個變數的參考,將被參考的變數賦予為變數名 (name) 的值
範例:
#!/bin/bash
namerefed=100
declare -n nameref=namerefed
echo "namerefed = $namerefed"
echo "nameref = $nameref"
nameref=200
echo "namerefed = $namerefed"
echo "nameref = $nameref"
結果:
namerefed = 100
nameref = 100
namerefed = 200
nameref = 200
沒有留言:
張貼留言