文章目录
一、有类型变量
-
两种命令等价
语法 参数 含义 方式一 declare -r 将变量设为只读 -i/+i 将变量设为整数/取消声明变量 -a 将变量定义为数组 -f 显示此脚本前定义过的所有函数及内容 -F 仅显示此脚本前定义过的函数名 -x/+x 将变量声明为环境变量,可以在脚本中使用/取消声明变量 -p 查看所有变量属性 方式二 typeset
举例:
# declare -r 将变量设为只读
declare -r var="hello shell"
var="hello world"
# 报错
-bash: var: readonly variable
# declare -i 将变量设为整数,如果不申明就是10+100 字符串呈现
num1=10
declare -i num2
num2=$num1+100
echo $num2
# declare -a 将变量定义为数组
declare -a array
# 数组声明
array=("mike" "lilei" "hanmeimei")
# 获取数组元素
echo ${array[0]}
# 获取数组元素个数
echo ${#array[@]}
# 打印数组所有元素
echo ${array[@]}
# 给数组某个下标赋值
array[2]="zhangsan"
# 删除元素
unset array[1]
# 清空整个数组
unset array
# 分片访问
# 从下标为 0 的位置开始,向后取 2个元素,忽略中间的空元素,直到取够 2个元素。如果元素不足2个,则输出后面的所有元素即可。
$ echo ${array[@]:0:2}
# 内容替换
# 将数组中所有 ke 替换为 KE。
array1=${array[@]/ke/KE}
# 数组遍历
for arr in ${array[@]}
do
echo $arr
done