Shell declare 变量声明

在这里插入图片描述

只读类型

declare -r 声明只读类型

var1="hello world"
declare -r var1
var1="hello shell" # 提示bash: var1: readonly variable

整型

declare -i
声明为整型

num1=10
num2=$num1+20
echo $num2 # 10+20

expr $num1 + 10 # 20
declare -i num3
num3=$num1+90
echo $num3 # 100

数组

declare -a array # 声明数组
array=("Tom" "Nick" "Linda" "Jack" "Wenday")
echo ${array[@]} # Tom,Nick,Linda,Jack,Wenday
echo ${array[1]} # Nick
echo ${array[1]} # Linda

# 获取个数
echo ${#array[@]} # 5
echo ${#array[1]} # 4 第二个元素的长度


# 给数组某个下标赋值
array[0]="Lily"
array[5]="Hi"
echo ${array[@]} # Lily Nick Linda Jack Wenday Hi

# 删除
unset array[2] # 删除元素
unset array # 清空整个数组

# 分片访问
${array[@]:1:4} # 显示数据下标索引从1开始到3的,3个元素

# 内容替换
${array[@]/an/AN}

# 数组遍历
for v in ${array[@]}
do
	echo $v
done

声明环境变量

declare -x 声明为环境变量,可以在脚本中直接使用

取消声明

declare +r
declare +i
declare +a
declare +x

### Shell脚本中`declare`命令的使用 #### 创建并初始化变量 在Bash脚本环境中,`declare`指令允许定义带有特定特性的变量。通过简单的语法结构即可完成这一操作: ```bash declare 变量名=值 ``` 上述语句不仅声明了新的变量还对其进行了初始赋值[^3]。 #### 设置变量属性 为了增强灵活性以及安全性,`declare`支持多种标志来设定不同类型的约束条件于所创建之变量上。例如设置整型只读变量可通过下面的方式实现: ```bash declare -ri c=1 ``` 一旦设置了只读特性,则后续尝试修改此变量将会遭到拒绝,并提示错误信息指出该变量已被设为不可更改状态;而试图撤销readonly标记同样会失败因为本身也是受保护的操作[^2]。 #### 名称引用机制 利用`-n`参数能够建立所谓的“名称引用”,即让一个变量指向另一个已存在的同名实体而非直接存储数据副本。这特别适用于函数内部需要间接访问外部作用域内的对象场景下[^1]: ```bash #!/bin/bash source_var="original" target_ref="" declare -n target_ref=source_var echo "$target_ref" # 输出 "original" ``` #### 数组处理能力 当涉及到集合形式的数据集时,借助`declare`也可以轻松构建固定长度或是动态增长的一维或多维数组。对于遍历显示整个列表内容而言,采用`${array[*]}`这样的表达方式十分便捷有效[^4]: ```bash music=("pop" "rock" "jazz") echo "${music[*]}" # 打印全部元素 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小叶柏杉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值