変数の宣言(数値)
code
echo 'i オプションは変数を数値として宣言'
declare -i n
echo "n=${n}"
echo '変数に数値(1)を代入した場合'
n=1
echo "n=${n}"
echo '変数に文字列を代入した場合'
n='hello'
echo "n=${n}"
echo '変数に数値(100)を代入した場合'
n=100
echo "n=${n}"
stdout
変数の宣言(配列)
code
echo 'a オプションは変数を配列として宣言する'
declare -a arr
echo 'arr=(' "${arr[@]}" ')'
arr+=('one')
echo 'arr=(' "${arr[@]}" ')'
arr+=('two')
echo 'arr=(' "${arr[@]}" ')'
stdout
変数の宣言(数値の配列)
code
echo 'i と a オプションで数値の配列を宣言できる'
declare -ia arr
echo 'arr=(' "${arr[@]}" ')'
arr+=('one')
echo 'arr=(' "${arr[@]}" ')'
arr+=(2)
echo 'arr=(' "${arr[@]}" ')'
stdout
変数の宣言(連想配列)
code
echo 'A オプションで連想配列を宣言できる'
declare -A hash
hash[りんご]=200
hash[みかん]=120
echo 'キー :' "${!hash[@]}"
echo '値 :' "${hash[@]}"
stdout
変数の宣言(数値の連想配列)
code
echo 'i と A オプションで数値の連想配列を宣言できる'
declare -iA hash
hash[りんご]=200
hash[みかん]=120
hash[バナナ]=250万
echo 'キー :' "${!hash[@]}"
echo '値 :' "${hash[@]}"
stdout
stderr
変数の宣言(読み取り専用)
code
echo 'r オプションで読み取り専用の変数を宣言できる'
declare -r a1=100
a1=200
echo "a1=${a1}"
stdout
stderr
変数の宣言(読み取り専用:配列)
code
echo 'r オプションで読み取り専用の変数を宣言できる(配列)'
declare -ra arr=(1 2 3)
echo '変数に配列を代入'
arr=()
echo "arr=(${arr[*]})"
echo '配列に要素を追加'
arr+=(4)
echo "arr=(${arr[*]})"
echo '配列の要素を変更'
arr[1]=100
echo "arr=(${arr[*]})"
stdout
stderr
変数の宣言(読み取り専用:連想配列)
code
echo 'r オプションで読み取り専用の変数を宣言できる(連想配列)'
declare -rA hash=(
[りんご]=200
[みかん]=120
)
echo 'key=(' "${!hash[@]}" ')'
echo 'val=(' "${hash[@]}" ')'
echo '変数に連想配列を代入'
hash=()
echo 'key=(' "${!hash[@]}" ')'
echo 'val=(' "${hash[@]}" ')'
echo '連想配列を要素を追加'
hash[バナナ]=300
echo 'key=(' "${!hash[@]}" ')'
echo 'val=(' "${hash[@]}" ')'
stdout
stderr
変数の宣言(名前参照)
code
echo 'n オプションで変数を名前参照として宣言できる'
a='りんご'
declare -n b=a
echo "${a}" : "${b}"
b='みかん'
echo "${a}" : "${b}"
stdout
変数の宣言(名前参照:配列)
code
echo 'n オプションで変数を名前参照として宣言できる(配列)'
add() {
declare -n a=$1
a+=("$2")
}
declare -a arr=({1..3})
echo "arr=(${arr[*]})"
echo 'add 関数で arr 配列に要素を追加'
for i in {1..10}; do
add arr "$i"
done
echo "arr=(${arr[*]})"
stdout
変数の宣言(名前参照:連想配列)
code
echo 'n オプションで変数を名前参照として宣言できる(連想配列)'
add() {
declare -n a=$1
a["$2"]="$3"
}
declare -A hash=( [りんご]=200 )
echo "key=${!hash[*]}"
echo "val=${hash[*]}"
echo 'add 関数で hash 連想配列に要素を追加'
add hash みかん 120
echo "key=${!hash[*]}"
echo "val=${hash[*]}"
stdout