shell 变量字符串数组

Posted rivsidn

tags:

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

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 变量字符串数组的主要内容,如果未能解决你的问题,请参考以下文章

Shell全解析:字符串变量和数组变量

Shell全解析:字符串变量和数组变量

Shell编程入门

shell_数组与字符串

18 shell脚本--009数组与字符串

Linux开发基础知识shell语法整理