• Shell变量


    基本用法

    定义变量

    name="xumaomao"

    使用变量

    echo $name

    只读变量

    name="xumaomao"
    readonly name
    name="xmm" //错误,只读变量不能修改

    删除变量

    unset name    //不能删除只读变量

     

    变量类型

    运行shell时,会同时存在三种变量:

    • 1) 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
    • 2) 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
    • 3) shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行

    Shell字符串

    字符串可以用单引号,也可以用双引号,也可以不用引号

    单引号

    单引号字符串的限制:

    • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
    • 单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。
    your_name='runoob'
    str='Hello, I know you are "$your_name"! 
    '
    echo -e $str

    输出结果为:

    Hello, I know you are "$your_name"!

    双引号

    双引号的优点:

    • 双引号里可以有变量
    • 双引号里可以出现转义字符
    your_name='runoob'
    str="Hello, I know you are "$your_name"! 
    "
    echo -e $str

    输出结果为:

    Hello, I know you are "runoob"!

    拼接字符串

    your_name="runoob"
    greeting="hello, "$your_name" !"
    greeting='hello, '$your_name' !'

    获取字符串长度

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

     提取子字符串

    string="runoob is a great site"
    echo ${string:1:4} # 输出 unoo

    查找子字符串

    查找字符 io 的位置(哪个字母先出现就计算哪个):

    string="runoob is a great site"
    echo `expr index "$string" io`  # 输出 4

    Shell 数组

    bash支持一维数组(不支持多维数组),并且没有限定数组的大小。

    定义数组

    arr1=(1 2 3 4 5)

    读取数组

    echo ${arr1[1]}
    echo ${arr1[@]}    #使用@符号可以获取数组中的所有元素

    获取数组的长度

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

    参考资料

    https://www.runoob.com/linux/linux-shell-variable.html

  • 相关阅读:
    MFC单文档视图设置背景
    原来这就是命令行下的“学生信息管理系统”
    C语言中数组&取地址的问题
    《逐梦旅程-Windows游戏编程之从零开始》 勘误
    杭电ACM 1003 ( 动态规划法 水题)
    《编程之美》
    [蓝桥杯][2014年第五届真题]地宫取宝
    [蓝桥杯][2013年第四届真题]危险系数
    2142: 逛超市(zznuoj)
    2141:2333(zznuoj)
  • 原文地址:https://www.cnblogs.com/xumaomao/p/13032386.html
Copyright © 2020-2023  润新知