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%时,发邮件报警
  • 相关阅读:
    markdown===在新窗口中打开网址的解决办法,以及其他遗留问题!
    关于比特币
    给windows设置隐藏文件夹的方法
    python实战===百度文字识别sdk
    python实战===用python对比两张图片的不同
    python基础===python os.path模块
    python实战===爬取所有微信好友的信息
    python基础===Sublime Text 3 快捷键
    python实战===一键刷屏
    linux===进程操作
  • 原文地址:https://www.cnblogs.com/codeBang/p/11906462.html
Copyright © 2011-2022 走看看