2.Shell变量

Shell变量

linux系统变量

#通过命令获取shell变量
set

自定义变量

  1. 基本语法

    • 定义变量:变量=值
    • 撤销变量:unset 变量
    • 声明静态变量:readonly变量,注意:不能unset
  2. 命名规则

    • 变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。
    • 等号两侧不能有空格
    • 在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。
    • 变量的值如果有空格,需要使用双引号或单引号括起来。
  3. Demo

    #定义变量A,当重新执行A=6时,则会覆盖原值
    A=5
    #输出
    echo $A
    #删除变量
    unset A
    #声明静态的变量B=2,不能unset
    readonly B=2
    #变量默认类型都是字符串类型,无法直接进行数值运算
    C=1+2 
    echo $C #会输出1+2
    #变量的值如果有空格,需要使用双引号或单引号括起来
    D="Hello Word"
    #可把变量D提升为全局环境变量,可供其他Shell程序使用
    export D
    

其他变量

$n

  1. 基本语法

​ 功能描述:n为数字,$0代表该脚本名称,$1-$9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10}

  1. Demo

    输出该脚本文件名称、输入参数1和输入参数2 的值

    #创建
    touch parameter.sh
    #编辑
    vim parameter.sh
    #获取
    #!/bin/bash
    echo "$0  $1   $2"
    #执行
    ./parameter.sh p1  p2
    #输出
    parameter.sh p1 p2
    

$#

  1. 基本语法

    ​ 功能描述:获取所有输入参数个数,常用于循环。

  2. Demo

    获得参数数量

    vim parameter.sh
    #!/bin/bash
    echo "$0 $1 $2"
    #新增如下
    echo $#
    #执行
    sh parameter.sh p1 p2
    #输出
    parameter.sh p1 p2
    2#有P2 P2两个参数
    
    

$* | $@

  1. 基本语法

    • $* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
    • $@ (功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)

    两者区别见此处

  2. Demo

    vim parameter.sh
    #!/bin/bash
    echo "$0 $1 $2"
    echo $#
    #新增如下
    echo $*
    echo $@
    #执行
    sh parameter.sh p1 p2
    #输出
    parameter.sh p1 p2
    2#有P2 P2两个参数
    p1 p2
    p1 p2
    

$?

  1. 基本语法

    功能描述:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。

  2. Demo

    #执行一个正确的变量命名的命令
    A=1
    #执行
    $?
    #输出
    0 #说明上一次执行成功
    
    #执行一个错误的变量命名的命令
    A = 1 #带空格
    #执行
    $?
    #输出
    !0 #说明上一次执行失败
    
posted @ 2022-03-27 13:48  RollBack2010  阅读(23)  评论(0编辑  收藏  举报