declare 命令用于显式声明变量类型与属性:-i 声明整型(自动计算、非数转0)、-a 声明索引数组、-A 声明关联数组、-p 查看变量属性及值。

在 Linux 的 Bash shell 中,declare 命令用于显式声明变量并设置其类型或属性。虽然 shell 默认所有变量都是字符串类型,但用 declare 可以让变量具备整数运算能力或数组结构,避免隐式转换错误。
声明整型变量(支持算术运算)
加 -i 选项后,变量被赋予整数属性:赋值时自动求值,非数值内容会被转为 0,且不能存纯文本。
-
declare -i count=10—— 直接声明并初始化为整数 -
count=3+7—— 赋值时自动计算,echo $count输出10 -
count="hello"—— 会静默转为0,不是报错 - 表达式含变量时建议加单引号防扩展:
declare -i result='a * b'(前提是a和b已定义)
声明索引数组变量(下标从 0 开始)
用 -a 显式声明数组,增强可读性与脚本健壮性;不声明也能用数组语法,但 declare -a 更规范。
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
-
declare -a fruits—— 声明空数组 -
fruits=("apple" "banana" "cherry")—— 直接赋值(等价于fruits[0]="apple"; fruits[1]="banana") -
echo ${fruits[1]}—— 输出banana -
echo ${fruits[@]}—— 输出全部元素:apple banana cherry
声明关联数组变量(键值对)
用 -A 声明关联数组,适合用字符串作下标(如配置项、映射表)。
declare -A user_infouser_info[name]="Alice"; user_info[age]=28; user_info[city]="Shanghai"-
echo ${user_info[age]}→28 -
echo ${!user_info[@]}—— 列出所有键:name age city
查看变量类型和值
用 -p 查看变量的声明属性和当前值,是调试常用手段:
-
declare -p count→ 输出类似declare -i count="10" -
declare -p fruits→ 显示数组结构和全部元素 -
declare -p(无参数)→ 列出所有已声明变量及其属性










