zoukankan      html  css  js  c++  java
  • shell(一) shell变量

    基本介绍

    变量命名规范

    • 变量名要求由字母、数字、下划线组成,尽量字母开头,有明确含义
    • 注意:变量赋值时,等号前后不能有空格,变量名称不能和字体变量冲突

    自定义变量

    • 当前shell有效
    1.定义变量
    var="hello shell"
    2.使用变量, $变量名或者${变量名}
    echo $var 或者echo ${var}
    echo ${var}_log
    #3. 查看变量,set显示所有变量,包括自定义变量和环境变量
    
    • 注意事项,单引号和双引号的问题,单引号里面,输入什么就是什么
      1.在定义变量时,用双引号
      2.在引用变量时,用双引号
      3.在需要输出特殊符号时,用单引号

    单引号和双引号使用示例

    ⚡ root@i � /opt/shellTest � var="hello shell"
    
    双引号
    ⚡ root@i � /opt/shellTest � echo "$var"
    ------- hello shell
    
    单引号
    ⚡ root@i � /opt/shellTest � echo '$var'
    ------- $var
    
    特殊符号
    ⚡ root@xigua � ~ � var="hello"
     ⚡ root@xigua � ~ � echo "$var is $500"
    hello is $500
    
    

    系统环境变量

    相当于全局变量,当前shell和子shell都有效

    查看所有的系统环境变量
    ⚡ root@xigua � ~ � export
    

    export 可以将自定义变量,改为系统环境变量

    ## 预定义变量 位置参数

    1. $0 文件名字
    2. $n 第n个参数 n>0
    3. $* 所有参数
    4. $@ 所有参数
    5. $$ 返回PID
    6. $? 上一条语句的执行结果 =0 表示成功,不等于0失败
    • $@和$*的区别

    命令替换

    
    # 根据系统时间打印 今年时间和明年时间
    (注意有多少个括号)
    ⚡ root@xigua � ~ � echo "$(date +%Y)"
    2019
    
    ⚡ root@xigua � ~ � echo "($(date +%Y)+1)"
    (2019+1)
     ⚡ root@xigua � ~ � echo "$(($(date +%Y)+1))"
    2020
    

    变量替换

    变量 说明
    ${变量#匹配规则} 从前开始匹配,最短删除, 删除符合匹配规则的部分
    ${变量##【匹配规则} 从前开始匹配,最长删除,删除符合匹配规则的部分
    ${变量%匹配规则} 从后开始匹配,最短删除,删除符合匹配规则的部分
    ${变量%%匹配规则} 从前开始匹配,最长删除,删除符合匹配规则的部分
    ${变量/旧字符串/新字符串} 替换变量中的旧字符串为新的字符串,只替换一个
    ${变量//旧字符串/新字符串} 替换变量中的旧字符串为新的字符串,替换所有符合条件的

    使用案例

    • 根据匹配规则删除字符
    -- url=www.sina.com.cn
    www.sina.com.cn
    
    -- echo ${url}
    www.sina.com.cn
    
    ------------------------------------------------------------
    ~/Documents/mine/study_note » echo ${url##.*}
    www.sina.com.cn
    ------------------------------------------------------------
    ~/Documents/mine/study_note » echo ${url%.*}
    www.sina.com
    ------------------------------------------------------------
    ~/Documents/mine/study_note » echo ${url#*.}
    sina.com.cn
    
    ------------------------------------------------------------
    ~/Documents/mine/study_note » echo ${url##*.}
    cn
    
    ~/Documents/mine/study_note » echo ${url%*.}
    www.sina.com.cn
    ------------------------------------------------------------
    ~/Documents/mine/study_note » echo ${url%.*}
    www.sina.com
    ------------------------------------------------------------
    ~/Documents/mine/study_note » echo ${url%%.*}
    www
    
    
    • 替换字符串

    练习题

    • 查看内存,当使用超过80%时,发邮件报警
  • 相关阅读:
    自定义博客园样式
    Serilog 记录日志
    1 Python命令行参数(脚本神器)
    原创powershell脚本:通过远程桌面3389黑名单,阻止黑客ip
    在win中,给powershell客户端,搭建sshd服务器。
    分享我编写的powershell脚本:ssh-copy-id.ps1
    猪懂傻改之《powershell 代码规范》
    为啥没有操作系统托管的队列池?没有托管的账户?
    powershell脚本:你的文件已经被黑客篡改.ps1
    巧用linux版powershell,管理linux下docker的image,container
  • 原文地址:https://www.cnblogs.com/codeBang/p/11906462.html
Copyright © 2011-2022 走看看