shell(一) shell变量
2024-09-02 05:10:15
基本介绍
变量命名规范
- 变量名要求由字母、数字、下划线组成,尽量字母开头,有明确含义
- 注意:变量赋值时,等号前后不能有空格,变量名称不能和字体变量冲突
自定义变量
- 当前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 可以将自定义变量,改为系统环境变量
## 预定义变量 位置参数
- $0 文件名字
- $n 第n个参数 n>0
- $* 所有参数
- $@ 所有参数
- $$ 返回PID
- $? 上一条语句的执行结果 =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 小玩意(覆盖效果)
- 思维固化,addTarget难道就只能给self
- S5PV210之添加缺少的-内核提供的&#39;.h&#39;文件 linux3.0.8驱动
- IOS如何延长LaunchScreen.xib启动画面
- VS2010与SVN
- 张高兴的 UWP 开发笔记:手机状态栏 StatusBar
- 最基本的mysql
- HDU 3901 Wildcard
- 如何解决微信小程序界面适配问题-引用-生命周期回调函数-优化机制-样式引入
- windows下设置JupyterNotebook默认目录
- AE与C#入门笔记
- getent passwd 不能访问到 ldap 的用户
- shiro 入门
- 将window的shell脚本通过ftp传输到Linux服务器后, shell脚本中执行时提示“没有那个文件或目录”的解决办法
- angularjs中的验证input输入框只能输入数字和小数点
- dom2级事件兼容性写法
- javascript节点操作appendChild()
- D05——C语言基础学PYTHON
- CCF CSP 201412-2 Z字形扫描
- Django REST framework 理解