美文网首页
shell变量

shell变量

作者: 大雄good | 来源:发表于2017-01-23 22:05 被阅读0次

    Shell变量

    前面通过简单的程序了解了Shell的编辑和运行过程,这一节主要学习Shell的变量。

    1.变量定义

    Shell的变量定义与其他编程语言略有不同,尤其注意,变量和等号直接都不能有空格,具体范例如下:

    my_name="Shawn"
    

    2.变量使用

    Shell的变量使用需要带$符号,同时可以使用{}将变量包围:

    #!/bin/bash
    my_name="Shawn"
    echo $my_name
    my_name="Wang"
    echo ${my_name}
    

    3.只读变量

    可以使用关键字readonly将变量定义为只读变量,只读变量的值不能被改变:

    my_name = "Shawn Wang"
    readonly my_name
    

    上面例子中任意对my_name修改都会报错

    4.删除变量

    使用unset命令可以删除变量,语法如下:

    unset delete_name
    

    当然,unset同样不能删除只读变量

    5.字符串

    Shell中单引号和双引号甚至没有引号,都可以用于表示字符串。

    5.1单引号

    单引号有以下限制:

    • 单引号里任何字符都会原样输出,单引号中的变量无效
    • 单引号中不能出现单引号(转义字符后也不行)

    5.2双引号

    双引号的使用范例如下:

    my_name='Shawn Wang'
    str="hello, my name is \"$my_name\"!"
    

    因此,双引号里可以有变量,也可以使用转义字符

    5.3拼接字符串

    和其他语言一样,Shell的字符串也可以拼接:

    greeting="hello, "$your_name" !"
    greeting_1="hello, ${your_name} !"
    echo $greeting $greeting_1
    

    5.4获取字符串长度

    字符串长度通过#来获取:

    string="abcd"
    echo ${#string} #输出 4
    

    5.5提取子字符串

    下面实例提取字符串中的第2-4个字符:

    string="romantic"
    echo ${string:1:4} # 输出 oman,格式${string:pos:len}
    

    6.数组

    Bash仅支持一维数组(不支持多维数组),并且没有限定数组大小,数组元素下标由0开始编号,可以利用数组下标获取元素。

    6.1数组定义

    shell定义数组由空格分开,如下:

    数组名=(值1 值2 ... 值n)
    

    6.2数组读取

    读取数组元素值的一般格式是:

    ${数组名[下标]}
    

    可以利用@符号获取数组中的所有元素,例如:

    echo ${array_name[@]}
    

    6.3获取数组长度

    获取数组长度方法与获取字符串长度相同:

    length=${#array_name[@]}
    #or
    length=${#array_name[*]}
    

    相关文章

      网友评论

          本文标题:shell变量

          本文链接:https://www.haomeiwen.com/subject/eltzbttx.html