linux declare 指令
Linux declare 指令用于定义 shell 变量。
declare 是一个 shell 内建命令,在第一种用法中可以用来定义变量并设定变量的特性([rix]即代表变量的特性),在第二种用法中可以用来展示 shell 函数。若不添加任何选项,则会列出所有的 shell 变量与函数(效果等同于执行 set 命令)。
用法
declare [+/-][rxi][变量名称=赋值内容] 或 declare -f
选项说明:
- +/- “-“可用于设定变量的特性,”+”则是用于取消已设置的特性。
- -f 仅展示函数。
- r 将变量设定为只读状态。
- x 设定的变量将成为环境变量,可供 shell 以外的程序调用。
- i [赋值内容]可以是数字、字符串或表达式。
示例
定义整型变量
示例
declare -i ab //定义整型变量
# ab=56 //修改变量内容
# echo $ab //输出变量内容
56
修改变量特性
示例
declare -i ef //定义整型变量
# ef=1 //变量赋值(整数值)
# echo $ef //输出变量内容
1
# ef=”wer” //变量赋值(文本内容)
# echo $ef
0
# declare +i ef //取消变量特性
# ef=”wer”
# echo $ef
wer
设定变量只读
示例
declare -r ab //设定变量为只读
# ab=88 //修改变量内容
-bash: ab: 只读变量
# echo $ab //输出变量内容
56
定义数组变量
示例
declare -a cd='([0]=”a” [1]=”b” [2]=”c”)’ //定义数组变量
# echo ${cd[1]}
b //输出变量内容
# echo ${cd[@]} //输出整个数组内容
a b c
展示函数
示例
declare -f
command_not_found_handle ()
{
if [ -x /usr/lib/command-not-found ]; then
/usr/bin/python /usr/lib/command-not-found — $1;
return $?;
else
if [ -x /usr/share/command-not-found ]; then
/usr/bin/python /usr/share/command-not-found — $1;
return $?;
else
return 127;
fi;
fi
}