• shell基础操作


    一、字符串

    字符串是shell编程中最常用的数据类型,字符串可以用单引号,也可以用双引号,也可以不用引号。

    单引号

    name='xiaoxi'

    单引号的限制:

    • 单引号里的任何字符都会原样输出,单引号中的变量是无效的。

    • 单引号字串中不能出现单引号(对单引号使用转义符也不行)。

    双引号

    name="xiaoxi"

    uname="${name}"test"

    双引号的优点:

    • 双引号里可以包含变量

    • 双引号里可以出现转义字符

    不加引号

    name=xiaoxi

    uname=${name}"test

      不加引号和双引号效果类似,只是开头和结尾没有双引号。

    拼接字符串

    name='xiaoxi'

    uname="${name}test"

    uname2="$name$uname"

    echo $name $uname $uname2

    输出:

    [root@xiaoxitest ~]# ./test.sh
    xiaoxi xiaoxitest xiaoxixiaoxitest

    获取字符串长度

    name='xiaoxi'

    echo ${#name}

    输出:

    [root@xiaoxitest ~]# ./test.sh
    6

    提取字符串

    name='xiaoxitest'

    echo ${name:0:6}

    输出:

    [root@xiaoxitest ~]# ./test.sh
    xiaoxi

    查找字符串

    name='xiaoxitest'
    echo `expr index ${name}  xiaoxi`

    输出:

    [root@xiaoxitest ~]# ./test.sh
    1    #1表示存在,0表示不存在

    二、转义字符

    name='xiaoxitest'
    echo -e "xiaoxi test"

    输出:

    [root@xiaoxitest ~]# ./test.sh
    xiaoxi
    test

    这里 -e 表示对转义字符进行替换。如果不使用 -e 选项,将会原样输出:

    xiaoxi test

    其它转义字符也可以用于echo中:

    三、表达式

    将命令结果存储在变量中

    name=`who | awk {'print $1'}`  #注意是反引号,位于Esc键下方
    count=$(who | wc -l)
    echo -e "The user login count: ${count} ${name}"

    输出:

    [root@xiaoxitest ~]# ./test.sh
    The user login count: 2
    root
    xyp

    四、数组定义

    bash仅支持一维数组,并且没有限制数组的大小。用括号表示数组,数组元素用“空格”符号或换行分隔。

    例1:

    name=(aa bb cc)

    例2:

    name=(

    aa

    bb

    cc

    )

    也可单独定义数组的各个元素

    name[0]=aa

    name[1]=bb

    name[3]=cc

    五、数组读写

    例:

    #!/bin/bash
    sar=(aa bb cc) echo sar:${sar[*]} name[0]=aa name[1]=bb name[3]=cc uname=(${name[1]} dd) echo "name:${name[1]} uname:${uname[*]}"

    输出:

    [root@xiaoxitest ~]# ./test.sh
    sar:aa bb cc
    name:bb uname:bb dd

    使用@ 或 * 可以获取数组中的所有元素,例如:

    ${name[*]}

    ${name[@]}

  • 相关阅读:
    NC20565 生日礼物(双指针)
    NC20566 游戏(二分图)
    NC19833 地斗主(dp+矩阵快速幂)
    CF505C Mr. Kitayuta, the Treasure Hunter(dp)
    HDU5493 Queue(线段树)
    HDU5489 Removed Interval (LIS+分治)
    CF1158C Permutation recovery(线段树优化建图)
    NC20811 蓝魔法师(树形dp)
    NC20857 Xor Path(dfs)
    chrony同步时间
  • 原文地址:https://www.cnblogs.com/xiaoxitest/p/6423614.html
Copyright © 2020-2023  润新知