shell编程系列4--有类型变量:字符串只读类型整数数组

Posted reblue520

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell编程系列4--有类型变量:字符串只读类型整数数组相关的知识,希望对你有一定的参考价值。

shell编程系列4--有类型变量:字符串、只读类型、整数、数组

有类型变量总结:


declare命令和typeset命令两者等价

declare、typeset命令都是用来定义变量类型的

declare命令参数总结

1.declare -r 将变量设置为只读类型
declare -r var="hello"
var="world" 

# 变量默认可以修改
[[email protected] shell]# var2="hello world"
[[email protected] shell]# var2="hello python"
[[email protected] shell]# echo $var2
hello python

# 声明为只读变量,就不可修改
[[email protected] shell]# declare -r var2
[[email protected] shell]# var2="hello java"
-bash: var2: readonly variable

2. declare -i 将变量设为整数
# 默认把变量当做字符处理
[[email protected] shell]# num1=10
[[email protected] shell]# num2=$num1+20
[[email protected] shell]# echo $num2
10+20

# 声明为整数
[[email protected] shell]# declare -i num3
[[email protected] shell]# num3=$num1+90
[[email protected] shell]# echo $num3
100

3.declare -a 将变量定义为数组

# 定义数组
[[email protected] shell]# declare -a array
[[email protected] shell]# array=("jones" "make" "kobe" "jordan")

# 列出数组所有元素
[[email protected] shell]# echo ${array[@]}
jones make kobe jordan
[[email protected] shell]# echo ${array[1]}
make
[[email protected] shell]# echo ${array[0]}
jones
[[email protected] shell]# echo ${array[2]}
kobe

# 数组长度
[[email protected] shell]# echo ${#array[@]}
4

# 输出数组中元素长度
[[email protected] shell]# echo ${#array[0]}
5
[[email protected] shell]# echo ${#array[1]}
4

-f 显示此脚本前定义过的所有函数和内容
-F 进显示脚本前定义过的函数名


数组常用的方法(仅供参考,实际生产用的少)

array=("jones" "mike" "kobe" "jordan")
输出数组内容:
    echo ${array[@]}    输出全部内容
    echo ${array[1]}    输出下标索引为1的内容

获取数组长度:
    echo ${#array}        数组内元素个数
    echo ${#array[2]}    数组内下标索引为2的元素长度

给数组某个下标赋值:
    array[0]="lily"        给数组下标索引为1的元素赋值为lily
    array[20]="hanmeimei"    在数组尾部添加一个新元素

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

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

内容替换:
    ${array[@]/an/AN}    将数组中所有元素包含an的子串替换为AN


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


4.declare -x 将变量声明为环境变量

[[email protected] shell]# num5=30
[[email protected] shell]# echo $num5
30
[[email protected] shell]# vim test1.sh
[[email protected] shell]# cat test1.sh 
#!/bin/bash
#

echo $num5

# 在脚本中直接使用shell环境中定义的变量是无法引用的
[[email protected] shell]# sh test1.sh 

# 当使用declare -x 变量后,就可以直接在脚本中引用了
[[email protected] shell]# declare -x num5
[[email protected] shell]# sh test1.sh 
30


declare +r 取消一个变量

 

以上是关于shell编程系列4--有类型变量:字符串只读类型整数数组的主要内容,如果未能解决你的问题,请参考以下文章

shell编程:有类型的变量

shell编程进阶之数组

shell编程进阶之数组

Shell 编程

Shell编程Bash变量-用户自定义变量

Shell编程Shell中Bash变量-用户自定义变量