码迷,mamicode.com
首页 > 编程语言 > 详细

shell 变量、字符串、数组

时间:2019-06-15 23:12:32      阅读:372      评论:0      收藏:0      [点我收藏+]

标签:执行   dem   报错   引号   man   str   aaa   string   元素   

shell变量

  • 变量定义
  • 变量使用

    示例 1:

    #! /bin/bash
    var=aaa
    echo ${var}

    执行结果:

    $ ./demo.sh
    $ aaa

    示例 2:

    #! /bin/bash
    var=aaa bbb ccc
    echo ${var}

    执行结果:

    $ ./demo.sh
    ./demo.sh: line 3: bbb: command not found

    示例 3:

    #! /bin/bash
    var="aaa bbb ccc"
    echo ${var}

    执行结果:

    $ ./demo.sh
    aaa bbb ccc
  • 变量删除
    unset <var_name>
  • 变量只读
    readonly <var_name>

    通过 readonly 表明只读变量,对只读变量的修改会报错(不能被删除)。

字符串

  • 单引号

    单引号字符串中的变量是无效的;单引号中不能出现单一的单引号;

  • 双引号

    双引号中可以有变量; 双引号里可以出先转义字符;双引号中的单引号输出时维持单引号不变

    示例 1:

    #! /bin/bash
    var="aaa 

    bbb
    ccc"
    echo ${var}

    执行结果:

    $ ./demo.sh
    aaa bbb ccc #变量中的换行被忽略,且只有一个空格

    当字符串当成变量展开时,字符串中的多个空格或换行在展开时会只剩一个(方便for循环时候做处理)。

    示例 2:

    #! /bin/bash
    var="aaa 

    bbb
    ccc"
    echo "${var}"

    执行结果:

    $ ./demo.sh
    aaa  
    bbbb ccc
    当字符串当成字符串被展开时,字符串保持原样不变。

 

  • 获取字符串长度
    string="abcdefg"
    echo ${#string}
  • 提取字符串
    string="abcdefg"
    #0123456
    echo ${string:1:4} #输出 bcde
  • 查找字符串
    string="abcdef"
    echo `expr index "$string" ef` #输出5,因为 e 是第五个出现的

 

shell 数组

  • 数组定义
    array_name=(value0 value1 value2 value3)
    array_name=(
    value0
    value1
    value2
    value3
    )
    array_name[0]=value0
    array_name[1]=value1
    array_name[n]=valuen
  • 读取数组
    ${数组名[下标]}
  • 获取数组的长度

    # 取得数组元素的个数
    length=${#array_name[@]}
    length=${#array_name[*]}

    # 取得数组单个元素的长度 lengthn
    =${#array_name[n]}

 

shell 变量、字符串、数组

标签:执行   dem   报错   引号   man   str   aaa   string   元素   

原文地址:https://www.cnblogs.com/rivsidn/p/11026451.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!