美文网首页
Linux Shell 变量

Linux Shell 变量

作者: 尚水杨 | 来源:发表于2021-01-15 17:19 被阅读0次

    命名规则

    1. 只能使用英文字母、数字和下划线,首字符不能以数字开头。
    2. 区分大小写。

    变量定义

    变量定义采用如下方法key=value ,"="号两边不能有空格

    获取变量值

    可以如下两种

    var1="hello"
    echo $var1
    echo ${var1}
    

    设置变量只读及删除变量

    #设置只读
    readonly var1
    # 删除
    unset var1
    

    变量类型

    1. 环境变量
      一般大写,全局共享,有系统自带的环境变量,也有通过export声明的临时全局变量
      常用的环境变量
      PATH 决定了shell将到哪些目录中寻找命令或程序
      HOME 当前用户主目录
      HISTSIZE 历史记录数
      LOGNAME 当前用户的登录名
      HOSTNAME 指主机的名称
      SHELL 当前用户Shell类型
      LANGUGE  语言相关的环境变量,多语言可以修改此环境变量
      MAIL 当前用户的邮件存放目录
      PS1 基本提示符,对于root用户是#,对于普通用户是$

    2. Shell内置变量

    变量 含义
    $0 脚本名
    1 -9 位置1-9参数
    ${10} 位置10参数
    $# 位置参数个数
    "$*" 所有位置参数(作为单个字符串)
    "$@" 所有位置参数(每个作为单独字符串)
    ${#*} 传递到脚本中的命令行参数的个数
    $? 返回值
    $$ 脚本进程的PID
    $- 传递到脚本中的标识
    $_ 之前命令的最后一个参数
    $! 运行在后台的最后一个作业的进程ID(PID)
    1. 局部变量
      用户定义的变量,只能在当前shell中生效

    字符串

    变量值

    字符串可以使用单引号、又引号及不使用引号

    var1='value1'
    var2="value1 \${var1}=${var1}"
    var3=value3
    注:
    1. 单引号是任何字符都是原样输出。
    2. 单引号字符串中不可以出现单个单引号,可以成对出现。
    3. 双引号字符串中可以使用变量。
    4. 双引号字符串中可以使用转义字符。
    

    拼接字符串

    var1="value1"
    #使用双引号拼接
    var2="value2 "$var1" is ok"
    #使用单引号拼接
    var3='value3 '$var1' is ok'
    

    查找子字符串

    使用index指令进行查找,位置从1开始计算

    #查找第一个i或s字符的位置
    s1="this is shell"
    `expr index "$s1" is`
    #或者
    $(expr index "$s1" is)
    

    提取子字符串

    s1="this is shell"
    #从第6个字符开始,取2个字符,下标从0开始
    ${s1:5:2}  #返回is
    

    获取字符串长度

    s1="this is shell"
    echo ${#s1} #返回13
    

    数组

    数组定义

    #方式1
    arr_name=(1 2 3)
    #方式2
    arr_name=(
    1 
    2 
    3
    )
    #方式3
    arr_name[0]=1
    arr_name[1]=2
    arr_name[2]=3
    

    读取数组

    #格式
    #获取单个元素
    ${arr_name[n]}
    #获取所有元素
    ${arr_name[@]}
    #获取数组元素的个数
    ${#arr_name[@]}
    #或者
    ${#arr_name[*]}
    

    数组说明

    1. 数组元素的下标由 0 开始编号
    2. 下标使用字符也可以
    3. 可以不使用连续的下标,范围没有限制

    相关文章

      网友评论

          本文标题:Linux Shell 变量

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