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


    shell编程系列4--有类型变量:字符串、只读类型、整数、数组
    
    有类型变量总结:
    
    
    declare命令和typeset命令两者等价
    
    declare、typeset命令都是用来定义变量类型的
    
    declare命令参数总结
    
    1.declare -r 将变量设置为只读类型
    declare -r var="hello"
    var="world" 
    
    # 变量默认可以修改
    [root@es01 shell]# var2="hello world"
    [root@es01 shell]# var2="hello python"
    [root@es01 shell]# echo $var2
    hello python
    
    # 声明为只读变量,就不可修改
    [root@es01 shell]# declare -r var2
    [root@es01 shell]# var2="hello java"
    -bash: var2: readonly variable
    
    2. declare -i 将变量设为整数
    # 默认把变量当做字符处理
    [root@es01 shell]# num1=10
    [root@es01 shell]# num2=$num1+20
    [root@es01 shell]# echo $num2
    10+20
    
    # 声明为整数
    [root@es01 shell]# declare -i num3
    [root@es01 shell]# num3=$num1+90
    [root@es01 shell]# echo $num3
    100
    
    3.declare -a 将变量定义为数组
    
    # 定义数组
    [root@es01 shell]# declare -a array
    [root@es01 shell]# array=("jones" "make" "kobe" "jordan")
    
    # 列出数组所有元素
    [root@es01 shell]# echo ${array[@]}
    jones make kobe jordan
    [root@es01 shell]# echo ${array[1]}
    make
    [root@es01 shell]# echo ${array[0]}
    jones
    [root@es01 shell]# echo ${array[2]}
    kobe
    
    # 数组长度
    [root@es01 shell]# echo ${#array[@]}
    4
    
    # 输出数组中元素长度
    [root@es01 shell]# echo ${#array[0]}
    5
    [root@es01 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 将变量声明为环境变量
    
    [root@es01 shell]# num5=30
    [root@es01 shell]# echo $num5
    30
    [root@es01 shell]# vim test1.sh
    [root@es01 shell]# cat test1.sh 
    #!/bin/bash
    #
    
    echo $num5
    
    # 在脚本中直接使用shell环境中定义的变量是无法引用的
    [root@es01 shell]# sh test1.sh 
    
    # 当使用declare -x 变量后,就可以直接在脚本中引用了
    [root@es01 shell]# declare -x num5
    [root@es01 shell]# sh test1.sh 
    30
    
    
    declare +r 取消一个变量
  • 相关阅读:
    测试人员如何甩锅
    测试用例,写不写?
    软件测试很简单么?
    体系认证、白皮书与行业大会
    对话云层
    专项测试怎样才“好玩”
    k8s环境 构建 工具 kubeadmin 似于openstack自动化工具kollaansible等
    git clone 带入username passed
    数据库ACID REDIS ACID实现
    jforg devops 持续集成交付 软件交付流水线 知识点大方向汇总备忘
  • 原文地址:https://www.cnblogs.com/reblue520/p/10919004.html
Copyright © 2020-2023  润新知