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 可以将自定义变量,改为系统环境变量
## 预定义变量 位置参数
- $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%时,发邮件报警
shell(一) shell变量的更多相关文章
- shell编程之变量
变量: 变量由字母.数字._ 组成,不能以数字开头 长度不能超过255个字符 在bash中,变量的默认类型是字符串类型 变量分类: 1.用户自定义变量:只在当前shell生效,是局部变量 定义方法: ...
- Shell基础-环境变量配置文件
Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生效 主要的配置文件: /etc/p ...
- Linux —— Shell编程之变量赋值和引用
Linux的shell编程是一种非常成熟的编程语言,它支持各种类型的变量.有三种主要的变量类型:环境变量.内部变量和用户变量. 环境变量(environment variable)是系统环境的一部分, ...
- Linux学习——shell编程之变量
shell编程之变量:Linux shell编程基础中的变量. 包括Bash变量的分类和各变量的详细使用,如:用户自定义变量.环境变量.语系变量.位置参数变量和预定义变量. 1:什么是Bash变量? ...
- shell基础及变量
一 Shell概述 1.Shell的作用——命令解释器,“翻译官” shell作为一个人机接口,用于解释用户输入的命令,将命令解释为Linux内核可以执行的2进制代码,并将执行的结果返回在标准终端上. ...
- Shell的特殊变量
在Shell里存在的一些特殊变量:$!.$@.$#.$$.$*.$0.$n.$_.$? [root@shell ~]# sh shell.sh aaa bbb ccc$0 获取当前执行的shell脚本 ...
- Linux编程 11(shell全局环境变量与局变环境变量)
一.概述 在linux中,很多程序和脚本都通过环境变量来获取系统信息,存储临时数据,配置信息.环境变量是指用来存储有关shell会话和工作环境信息,允许你在内存中存储数据,以便程序或shell中运行的 ...
- linux shell脚本之-变量极速入门与进阶(1)
1,如果创建shell脚本? 使用任意文本编辑软件,一般为vim,创建.sh结尾的文件,在文件的最开头用 #!/bin/bash 注明shell的类型 如: ghostwu@dev:~/linux/s ...
- shell中的变量a=100, 什么时候作整数使用, 什么时候作字符串使用呢?
shell中的变量a=100, 什么时候作整数使用, 什么时候作字符串使用呢? 这确实是一个困扰很久的一个问题? how it can be an issue? 事实上, 在shell中, 你可以认为 ...
- awk中使用shell的环境变量
awk中使用shell的环境变量一:"'$var'"这种写法大家无需改变用'括起awk程序的习惯,是老外常用的写法.如:var="test"awk 'BEGIN ...
随机推荐
- [转] Nginx配置性能优化
大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了.而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能 ...
- Java Base64Utils ----Utils
Java Base64Utils 目录 Java Base64Utils 7 /** * <html> * <body> * <P> Copyrig ...
- 2019 蓝鲸人java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.蓝鲸人等公司offer,岗位是Java后端开发,因为发展原因最终选择去了蓝鲸人,入职一年时间了,也成为了面试官 ...
- 搜索引擎elasticsearch监控利器cat命令
目录 一.Cat通用参数 二.cat命令 三.示例 查询aurajike索引下的总文档数和有效文档数 查询aurajike各分片的调度情况 一.Cat通用参数 参数名 指令示例 功能 Verbose ...
- Linux磁盘分区(9)
分区的基础知识: 模式:mbr分区: 1.最多支持四个主分区 2.系统只能安装主分区 3.扩展分区要占一个主分区 4.MBR最大只支持2TB,但拥有最好的兼容性 gtp分区: 1.支持无限多个主分区( ...
- Linux用户管理(4)
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.Linux用户至少属于一个组. 1.添加用户 useradd ...
- sslscan
msf > use auxiliary/pro/web_ssl_scan msf auxiliary(web_ssl_scan) > show options Module options ...
- WorkFlow三:配BO对象,事件触发工作流
1.新建个BO对象的字段. 2.新建取数函数: 3.运行事物代码SWO1新建BO对象. 4.新建关键字段: 5.新建BO对象的事件: 6.添加处理方法: 6.调整对象状态,这里是本地对象,不需要释放, ...
- Python的变量命名规则
1.只能用大小写字母与“_”(下划线) 2.数字不能用在开头,如:12tea 3.不能使用空格 4.C语言的变量命名规则如上相同
- JVM参数最佳实践:元空间的初始大小和最大大小
本文阅读时间大约4分钟. JVM加载类的时候,需要记录类的元数据,这些数据会保存在一个单独的内存区域内,在Java 7里,这个空间被称为永久代(Permgen),在Java 8里,使用元空间(Meta ...