Loading

Linux Shell变量

变量分类

  1. 系统变量(\(HOME,\)PWD,\(SHELL,\)USER...)
    • 显示所有系统变量 set
  2. 用户自定义变量

定义变量

基本语法

  1. 声明变量: 变量=值
  2. 撤销变量: unset 变量
  3. 声明静态变量: readonly 变量
    • 静态变量不能unset

定义规则

  1. 可有字母、数字、下划线组成,但不能以数字开头
  2. 声明变量的时候 变量=值, 等号两边不能有空格
  3. 变量名称一般习惯大写
  4. 如果要将指令返回值赋给变量
    • A='date'【是反引号,不是单引号!】
    • A=$(date)

举例

  • 具体内容
    TTFi6O.png
  • 输出结果
    TTFP1K.png

注:ehco后添加的内容会直接以文本形式输出, 而遇到$时会将对应内容识别为变量,转而输出变量内容。

  • 将指令返回值赋给变量
    TTkJKO.png
  • 输出结果
    TTk8xK.png

设置环境变量

为什么需要设置环境变量

环境变量相当于全局变量,按上文的方式在一个shellA定义的变量在shellB将不起作用。而如果定义一个环境变量,那么它无论是在shellA还是在shellB中都能起作用

如何设置

  1. 在/etc/profile中添加环境变量
  2. 添加语法 : export 变量名=变量值【等号两边同样不能有空格】
  3. 执行source /etc/profile使配置文件生效

举例:添加环境变量TOMCAT_HOME

  1. 打开/etc/profile , 添加环境变量
    TTAq6f.png

  2. 执行source /etc/profile使配置文件生效
    TTAb1P.png

位置参数变量

介绍

  • 当我们执行一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量
  • 比如:./myshell.sh 100 200,这个就是一个执行shell的命令行,100,200是传入的参数
  • 类比c语言中的scanf()

基本语法

  • $n(功能描述:n为数字,$0代表命令本身,$1-\(9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如\){10})
  • \(* (功能描述:这个变量代表命令行中所有的参数,\)*把所有的参数看成一个整体)
  • \(@(功能描述:这个变量也代表命令行中所有的参数,不过\)@把每个参数区分对待)
  • $#(功能描述:这个变量代表命令行中所有参数的个数)

举例

  • 编写脚本position.sh
    TTV32q.png

  • 输入参数与执行结果
    TTV8x0.png

预定义变量

基本介绍

shell设计者实现定义好的变量,可以在shell脚本中直接使用

基本语法

  • \[(功能描述:当前脚本的进程的进程号(PID)) \]

  • $?(功能描述︰1.最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0,则证明上一个命令执行不正确了。2.用来获取函数的返回值)

举例

  • 编写preVar.sh
    TTnIAS.png

  • 执行,查看结果
    TTncpd.png

posted @ 2022-01-02 15:56  咪啪魔女  阅读(47)  评论(0编辑  收藏  举报