基本介绍

变量命名规范

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

自定义变量

  • 当前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%时,发邮件报警

最新文章

  1. <1 小玩意(覆盖效果)
  2. 思维固化,addTarget难道就只能给self
  3. S5PV210之添加缺少的-内核提供的'.h'文件 linux3.0.8驱动
  4. IOS如何延长LaunchScreen.xib启动画面
  5. VS2010与SVN
  6. 张高兴的 UWP 开发笔记:手机状态栏 StatusBar
  7. 最基本的mysql
  8. HDU 3901 Wildcard
  9. 如何解决微信小程序界面适配问题-引用-生命周期回调函数-优化机制-样式引入
  10. windows下设置JupyterNotebook默认目录
  11. AE与C#入门笔记
  12. getent passwd 不能访问到 ldap 的用户
  13. shiro 入门
  14. 将window的shell脚本通过ftp传输到Linux服务器后, shell脚本中执行时提示“没有那个文件或目录”的解决办法
  15. angularjs中的验证input输入框只能输入数字和小数点
  16. dom2级事件兼容性写法
  17. javascript节点操作appendChild()
  18. D05——C语言基础学PYTHON
  19. CCF CSP 201412-2 Z字形扫描
  20. Django REST framework 理解

热门文章

  1. 为什么改了JS数组中的一个元素的值,其他数组元素值都跟着变了
  2. 字节输出流FileOutputStream
  3. LiveBOS Webservice初步使用
  4. NLog日志
  5. Windows下VS Code打开黑屏解决办法(这样真的行)
  6. linux防火墙和SELinux
  7. AIX—日常运维命令总结
  8. SSH Weak Encryption Algorithms Supported
  9. Redis 分布式锁的正确打开方式
  10. Docker搭建Wordpress