Shell 变量简介
1. 概述
- 概述
- 知识点又稀又碎, 面试一问就流泪
- 简单介绍下 shell 下的变量及其基本操作
2. 环境
- 操作系统
- CentOS Linux release 7.5
- 用户
- root 用户
- 约定
- 使用 > 作为 命令提示符, 不是命令的一部分, 需要注意
- 所有命令不保证 可以无脑复制执行, 使用前需要理解
- '#' 表示注释
2. 变量分类
概述
- 变量按照 作用域 和 用户 两个维度的划分不同类型
- 一上来就大摆概念, 是我很不喜欢的一种描述方式, 但是目前我也没啥更好的
作用域
- 局部变量
- 常见于 shell 脚本中
- 出现在 函数 里
- 仅在函数中生效, 出了函数就无效了
- 全局变量
- 在当前 shell 里生效
- 环境变量
- 在当前 shell 及其 子 shell 里生效
- 局部变量
用户
- 当前用户
- 所有用户
3. 基本操作
- 概述
- 讲述基本操作
1. 设置变量
- 概述
- 设置变量
- 确认成功
1. 查看变量, 确认变量没有被设置
命令
# 1. 首先确认一下, 这个变量有没有被设置
## 1. 假设变量名为 key01
## 2. shell 里用可以用 $<name> 或者 ${<变量名>} 来对变量取值, 我倾向于 第二种, 比较有 仪式感, 当然也有别的好处, 想起来再说
> echo ${key01}
# 2. 如果没有设定变量, 会返回一个 空行
2. 设置变量
命令
# 1. 既然变量没有被设置, 我们来设置变量
> key01 = 'var01'
# 2. 成功后没有任何返回值
3. 查看变量
命令
# 1. 第二步设置的变量, 在当前 shell 里, 可以使用了
# 2. 这里设置的, 是一个 全局变量
> echo ${key01}
var01
# 3. 如果之前设置成功, 会直接返回 之前设置的变量值
2. 查看变量
- 开始都查看了, 为啥这下又要查看
- 开始只是查询单个变量, 这次能查一堆
- 后面有惊喜
1. 使用 set 命令, 查看 变量
命令
# 1. grep 是用来过滤的, 这个暂时不讲
# 2. 执行命令后, 返回一个值, 就是之前设置的 全局变量
> set | grep key01
key01=var01
2. 使用 env 命令, 查看 变量
命令
# 1. 这里就没有找出来 key01
# 2. 这是为啥呢?
> env | grep key01
3. 命令区别
- 全局变量
- 直接配置的变量, 是全局变量
- 生效的范围, 只有当前 shell 终端
- 不信你换个别的 shell 终端, 用 set 也找不到
- set 与 env
- set 可以查询 所有变量
- env 只能查询 环境变量
3. 环境变量
1. 环境变量
- 环境变量
- 作用域, 是当前 shell 终端, 与所有的 子终端
- 不信你配置个 环境变量, 再别的 shell 终端看看
- 啥, 不会啊...对哦, 还没说这个, 马上说
- 作用域, 是当前 shell 终端, 与所有的 子终端
2. 配置环境变量
命令
# 1. 将已经配置好的 key01 全局变量, 配置为 环境变量
> export key01
# 2. 验证, 找到结果, 验证通过
> env | grep key01
key01=var01
4. 用户 与 全局环境变量
- 概述
- 已经学会了配置 环境变量
- 但也有些问题
- 配置后只能对 执行命令的 shell 生效
- 新开窗口就失效了
- 如果有需要, 每次都要重新配置
- 配置后只能对 执行命令的 shell 生效
- 解决方案
- 可以通过 配置文件 配置 环境变量
- 可以对 单个用户 或者 全局用户 配置
1. 用户维度
命令
# 1. 打开配置文件 ~/.bash_profile
# 2. 在 文本中加入配置 环境变量 的命令
key01=var01
export key01
# 3. 最后执行 source 命令, 让 修改生效
> source ~/.bash_profile
# 4. 生效之后, 可以查看到该环境变量
## 1. 只要以该用户登录, 新的 shell 终端也会有
2. 全局维度
命令
# 1. 思路相同
# 2. 配置文件: /etc/profile
5. 最后: 取消变量
命令
# 1. 如果你不想要之前的变量了, 也没问题
> unset key01
# 2. 取消之后, 就找不到了
ps
- ref
Shell 变量简介的更多相关文章
- shell(shell变量、条件表达式、流程控制)
本章内容: 变量 运算 if语句 for语句 while语句 break.continue 实例 shell变量 1.shell变量简介 变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数 ...
- (一)Linux Shell编程——简介、变量、字符串、数组
1. Shell简介 1.1 Shell出现背景 Shell 既是一种脚本编程语言,也是一个连接内核和用户的软件. 对于图形界面,用户点击某个图标就能启动某个程序:对于命令行,用户输入某个程序的名字( ...
- shell脚本编程之变量简介及脚本执行过程
脚本变量简介 变量类型:字符型.数值型.真.假:事先确定数据的存放格式和长度: 变量存放在内存空间: 编译型语言,没有额外的处理逻辑,属于强类型语言: 脚本型语言,可以有解释器控制:所以,可以是弱类型 ...
- Linux shell中一些参数与变量简介
linux中shell变量$#,$@,$0,$1,$2,$!,$$,$*,$-,$@......等很多个,很容易记错,这里再次整理一下,相关含义解释如下,并附上一个实践截图. 多看几次,多用几次,应该 ...
- shell 编程 && bash 简介(shell 变量、shell操作环境、数据流重导向、管线命令、shell script)
如何学习一门编程语言 数据类型 运算符 关键字 1 认识BASH 这个shell linux是操作系统核心,用户通过shell与核心进行沟通,达到我们想要的目的.硬件.核心.用户之间的关系: 原理:所 ...
- Linux Shell——bash shell 脚本简介
bash shell 脚本简介 shell 运行环境 如果你运行的是 Unix 或 Linux 系统,例如 Ubuntu,Red Hat,SUSE Linux,还有macOS,都是内置了 bash s ...
- Linux 下Shell变量,环境变量的联系与区别
Linux下Shell变量,环境变量的联系与区别 by:授客 QQ:1033553122 1. 简介 linux下的变量可分成两种:Shell变量和环境变量. Shell变量,又称本地变量,包括私有 ...
- 鸟哥的私房菜:Bash shell(一)-Bash shell功能简介
Bash shell系列里,由变量谈起,先讲到环境变量的功能与修改的问题, 然后会继续提到历史指令的运用.接下来,就会谈一下『数据流重导向』这个重要概念, 最后就是管线命令的利用! 一 Bash s ...
- shell重温---基础篇(shell变量&字符串以及git GUI运行shell脚本方式)
既然是基础篇那肯定是需要对shell的各种需要注意的基本点进行说明了.接下来就是show time... shell呢,是一个用C语言编写的应用程序,是用户使用linux的桥梁.所以呢,他既是一 ...
随机推荐
- Mysql常用函数汇总-经典实用
以下是对mysql中的常用函数进行了汇总介绍.需要的朋友可以过来参考下. 一.数学函数ABS(x) 返回x的绝对值BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x ...
- nginx+php+swoole安装记录
领了台阿里服务器1vCPU 1G,做下测试研究. 系统 centos7,使用yum安装. Nginx yum install nginx ##开启nginx service nginx start 安 ...
- jquery实现的时间轴
代码 样式文件style.css 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ...
- Requests中文乱码解决方案
分析: r = requests.get(“http://www.baidu.com“) **r.text返回的是Unicode型的数据. 使用r.content返回的是bytes型的数据. 也就是说 ...
- Django中模型(三)
Django中模型(三) 四.模型成员 1.类属性 objects:是Manager类的一个对象,作用是与数据库进行交互. 定义模型类时,没有定义管理器,则默认创建名为objects的管理器. 2.自 ...
- .net增删该查DBAccess的应用
1.首先引用dll文件 2. //DBAccess.dll引用一個dll文件 private IDBAccess _access; private static readonly stri ...
- Go 测试单个方法
1.目录 gotest.go package mytest import ( "errors" ) func Division(a, b float64) (float64, er ...
- 【转】Maven项目模板
http://www.yiibai.com/maven/maven_project_templates.html maven 使用 Archetype 概念为用户提供不同类型的项目模板,它是一个非常大 ...
- QTP基本方法4------手动写入信息到测试结果报告中
可以使用写代码的方式添加结果信息到测试结果报告中. 结构:reporter.ReportEvent result,object,details,path result:状态:4种状态:micPass. ...
- PAT——1041. 考试座位号
每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座 ...