1. 概述

  1. 概述

    1. 知识点又稀又碎, 面试一问就流泪
    2. 简单介绍下 shell 下的变量及其基本操作

2. 环境

  1. 操作系统

    1. CentOS Linux release 7.5
  2. 用户
    1. root 用户
  3. 约定
    1. 使用 > 作为 命令提示符, 不是命令的一部分, 需要注意
    2. 所有命令不保证 可以无脑复制执行, 使用前需要理解
    3. '#' 表示注释

2. 变量分类

  1. 概述

    1. 变量按照 作用域 和 用户 两个维度的划分不同类型
    2. 一上来就大摆概念, 是我很不喜欢的一种描述方式, 但是目前我也没啥更好的
  2. 作用域

    1. 局部变量

      1. 常见于 shell 脚本中
      2. 出现在 函数 里
      3. 仅在函数中生效, 出了函数就无效了
    2. 全局变量
      1. 在当前 shell 里生效
    3. 环境变量
      1. 在当前 shell 及其 子 shell 里生效
  3. 用户

    1. 当前用户
    2. 所有用户

3. 基本操作

  1. 概述

    1. 讲述基本操作

1. 设置变量

  1. 概述

    1. 设置变量
    2. 确认成功

1. 查看变量, 确认变量没有被设置

  1. 命令

    # 1. 首先确认一下, 这个变量有没有被设置
    ## 1. 假设变量名为 key01
    ## 2. shell 里用可以用 $<name> 或者 ${<变量名>} 来对变量取值, 我倾向于 第二种, 比较有 仪式感, 当然也有别的好处, 想起来再说
    > echo ${key01}
    # 2. 如果没有设定变量, 会返回一个 空行

2. 设置变量

  1. 命令

    # 1. 既然变量没有被设置, 我们来设置变量
    > key01 = 'var01'
    # 2. 成功后没有任何返回值

3. 查看变量

  1. 命令

    # 1. 第二步设置的变量, 在当前 shell 里, 可以使用了
    # 2. 这里设置的, 是一个 全局变量
    > echo ${key01}
    var01
    # 3. 如果之前设置成功, 会直接返回 之前设置的变量值

2. 查看变量

  1. 开始都查看了, 为啥这下又要查看

    1. 开始只是查询单个变量, 这次能查一堆
    2. 后面有惊喜

1. 使用 set 命令, 查看 变量

  1. 命令

    # 1. grep 是用来过滤的, 这个暂时不讲
    # 2. 执行命令后, 返回一个值, 就是之前设置的 全局变量
    > set | grep key01
    key01=var01

2. 使用 env 命令, 查看 变量

  1. 命令

    # 1. 这里就没有找出来 key01
    # 2. 这是为啥呢?
    > env | grep key01

3. 命令区别

  1. 全局变量

    1. 直接配置的变量, 是全局变量
    2. 生效的范围, 只有当前 shell 终端
      1. 不信你换个别的 shell 终端, 用 set 也找不到
  2. set 与 env
    1. set 可以查询 所有变量
    2. env 只能查询 环境变量

3. 环境变量

1. 环境变量

  1. 环境变量

    1. 作用域, 是当前 shell 终端, 与所有的 子终端

      1. 不信你配置个 环境变量, 再别的 shell 终端看看
      2. 啥, 不会啊...对哦, 还没说这个, 马上说

2. 配置环境变量

  1. 命令

    # 1. 将已经配置好的 key01 全局变量, 配置为 环境变量
    > export key01
    # 2. 验证, 找到结果, 验证通过
    > env | grep key01
    key01=var01

4. 用户 与 全局环境变量

  1. 概述

    1. 已经学会了配置 环境变量
    2. 但也有些问题
      1. 配置后只能对 执行命令的 shell 生效

        1. 新开窗口就失效了
        2. 如果有需要, 每次都要重新配置
    3. 解决方案
      1. 可以通过 配置文件 配置 环境变量
      2. 可以对 单个用户 或者 全局用户 配置

1. 用户维度

  1. 命令

    # 1. 打开配置文件 ~/.bash_profile
    # 2. 在 文本中加入配置 环境变量 的命令
    key01=var01
    export key01
    # 3. 最后执行 source 命令, 让 修改生效
    > source ~/.bash_profile
    # 4. 生效之后, 可以查看到该环境变量
    ## 1. 只要以该用户登录, 新的 shell 终端也会有

2. 全局维度

  1. 命令

    # 1. 思路相同
    # 2. 配置文件: /etc/profile

5. 最后: 取消变量

  1. 命令

    # 1. 如果你不想要之前的变量了, 也没问题
    > unset key01
    # 2. 取消之后, 就找不到了

ps

  1. ref

    1. https://www.cnblogs.com/liang-io/p/9825363.html#_label0
    2. https://www.cnblogs.com/yang-hao/p/5968577.html

Shell 变量简介的更多相关文章

  1. shell(shell变量、条件表达式、流程控制)

    本章内容: 变量 运算 if语句 for语句 while语句 break.continue 实例 shell变量 1.shell变量简介 变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数 ...

  2. (一)Linux Shell编程——简介、变量、字符串、数组

    1. Shell简介 1.1 Shell出现背景 Shell 既是一种脚本编程语言,也是一个连接内核和用户的软件. 对于图形界面,用户点击某个图标就能启动某个程序:对于命令行,用户输入某个程序的名字( ...

  3. shell脚本编程之变量简介及脚本执行过程

    脚本变量简介 变量类型:字符型.数值型.真.假:事先确定数据的存放格式和长度: 变量存放在内存空间: 编译型语言,没有额外的处理逻辑,属于强类型语言: 脚本型语言,可以有解释器控制:所以,可以是弱类型 ...

  4. Linux shell中一些参数与变量简介

    linux中shell变量$#,$@,$0,$1,$2,$!,$$,$*,$-,$@......等很多个,很容易记错,这里再次整理一下,相关含义解释如下,并附上一个实践截图. 多看几次,多用几次,应该 ...

  5. shell 编程 && bash 简介(shell 变量、shell操作环境、数据流重导向、管线命令、shell script)

    如何学习一门编程语言 数据类型 运算符 关键字 1 认识BASH 这个shell linux是操作系统核心,用户通过shell与核心进行沟通,达到我们想要的目的.硬件.核心.用户之间的关系: 原理:所 ...

  6. Linux Shell——bash shell 脚本简介

    bash shell 脚本简介 shell 运行环境 如果你运行的是 Unix 或 Linux 系统,例如 Ubuntu,Red Hat,SUSE Linux,还有macOS,都是内置了 bash s ...

  7. Linux 下Shell变量,环境变量的联系与区别

    Linux下Shell变量,环境变量的联系与区别 by:授客 QQ:1033553122 1.  简介 linux下的变量可分成两种:Shell变量和环境变量. Shell变量,又称本地变量,包括私有 ...

  8. 鸟哥的私房菜:Bash shell(一)-Bash shell功能简介

    Bash shell系列里,由变量谈起,先讲到环境变量的功能与修改的问题, 然后会继续提到历史指令的运用.接下来,就会谈一下『数据流重导向』这个重要概念, 最后就是管线命令的利用! 一  Bash s ...

  9. shell重温---基础篇(shell变量&字符串以及git GUI运行shell脚本方式)

    既然是基础篇那肯定是需要对shell的各种需要注意的基本点进行说明了.接下来就是show time...    shell呢,是一个用C语言编写的应用程序,是用户使用linux的桥梁.所以呢,他既是一 ...

随机推荐

  1. Mysql常用函数汇总-经典实用

    以下是对mysql中的常用函数进行了汇总介绍.需要的朋友可以过来参考下. 一.数学函数ABS(x) 返回x的绝对值BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x ...

  2. nginx+php+swoole安装记录

    领了台阿里服务器1vCPU 1G,做下测试研究. 系统 centos7,使用yum安装. Nginx yum install nginx ##开启nginx service nginx start 安 ...

  3. 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 ...

  4. Requests中文乱码解决方案

    分析: r = requests.get(“http://www.baidu.com“) **r.text返回的是Unicode型的数据. 使用r.content返回的是bytes型的数据. 也就是说 ...

  5. Django中模型(三)

    Django中模型(三) 四.模型成员 1.类属性 objects:是Manager类的一个对象,作用是与数据库进行交互. 定义模型类时,没有定义管理器,则默认创建名为objects的管理器. 2.自 ...

  6. .net增删该查DBAccess的应用

    1.首先引用dll文件 2. //DBAccess.dll引用一個dll文件    private IDBAccess _access;    private static readonly stri ...

  7. Go 测试单个方法

    1.目录 gotest.go package mytest import ( "errors" ) func Division(a, b float64) (float64, er ...

  8. 【转】Maven项目模板

    http://www.yiibai.com/maven/maven_project_templates.html maven 使用 Archetype 概念为用户提供不同类型的项目模板,它是一个非常大 ...

  9. QTP基本方法4------手动写入信息到测试结果报告中

    可以使用写代码的方式添加结果信息到测试结果报告中. 结构:reporter.ReportEvent result,object,details,path result:状态:4种状态:micPass. ...

  10. PAT——1041. 考试座位号

    每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座 ...