zoukankan      html  css  js  c++  java
  • Shell 有类型变量

    1、通过 declare 和 typeset 命令

    • declare 和 typeset 两者等价
    • declare 和 typeset 都是用来定义变量类型的
    • 下面以 declare 进行总结

    2、declare 参数如下

    • -r   将变量设置为只读
    • -i   将变量设置为整数
    • -a  将变量设置为数组
    • -F  显示此脚本前定义过的所有函数及内容
    • -f   仅显示此脚本前定义过的函数名
    • -x  将变量声明为环境变量

    3、举例:

    例1: 声明为不可变形式, declare -r

      $ var=hello

      $ var=world

      $ echo $var

      打印出:world     // 说明 var是可变的

      $ declare -r var=hello

      $ var=world  

      打印结果:-bash: var: 只读变量

    例2:声明为整型, declare -i

      $ num=10

      $ num2=$num+20

      $ echo $num2

      打印出:10+20

      $ expr $num + 20

      打印出:30

      

      $ num=10

      $ declare -i num3

      $ num3=$num+90

      $ echo $num3

      打印出:100

    例3:显示出系统中定义的 函数名及函数体

      $ declare -F

    例4: 显示出系统中定义的所有函数的函数名

      $ declare -f

    例5:声明为数组, declare -a

      $ declare -a array       // 声明一个数组

      $ array=("jones" "mike" "kobe" "jordan")     // 赋值

      输出数组内容:

         $ echo ${array[@]}    //  输出全部内容,打印出:jones mike kobe jordan

         $ echo ${array[0]}     // 输出数组元素下标为0的值,打印出:jones

      获取数组长度:

        $ echo ${#array[@]}     // 输出数组长度,打印出:4

        $ echo ${#array[0]}     // 输出数组第0个元素的长度,打印出:5

      给数组某个下标赋值:

        $ array[0]=lisi

        $ echo ${array[@]}     // 输出:lisi mike kobe jordan

      给数组尾部添加一个元素:

        $ array[10]=zhangsan    // 下标必须大于数组长度 - 1,可以大很多

      删除元素:

        $ unset array[2]    // 删除数组的第三个元素

        $ unset array   // 清空整个数组

      分片访问:

        $ echo ${array[@]:1:3}     // 从下标为 1 的位置开始,向后取 3个元素,忽略中间的空元素,直到取够 3个元素。如果元素不足3个,则输出后面的所有元素即可。

       内容替换:

        $ array2=${array[@]/ke/KE}    // 将数组中所有 ke 替换为 KE。  

        $ echo ${array2[@]}

      数组遍历:

        for v in ${array[@]}

        do

          echo $v

        done 

    例6: 声明为环境变量  declare -x     

       $ declare -x num    // num 成为环境变量后,就可以在脚本中直接使用。   如果不是环境变量,则只能在这个终端里面使用。

    4、取消声明的变量

      declare +r

      declare +i

      declare +a

      declare +x

    总结:向数组array [0,1,2,3,4]末尾添加元素,如果数组长度为5,添加新元素 7的时候下标指向的是 7,那么数组为 [0,1,2,3,4, , ,7],这时候数组长度为6,此时 array[5] 和 array[6] 值为空,array[7] 的值为7。 

        

  • 相关阅读:
    Java语法基础-final关键字
    Java语法基础-异常处理
    Java语法基础-序列化
    Java的知识储备及面试-几个方面
    一篇分析测试开发人员的职业发展方向的好文章-学习笔记
    web 自动化测试 selenium基础到应用(目录)
    打包Scala jar 包的正确步骤
    IT项目管理
    寄存器 & 汇编指令
    Window环境下编写Shellcode(入门篇)
  • 原文地址:https://www.cnblogs.com/shenqidu/p/10589511.html
Copyright © 2011-2022 走看看