美文网首页
Shell中的变量

Shell中的变量

作者: 一个人一匹马 | 来源:发表于2019-03-12 18:03 被阅读0次
    系统变量
    1. 常用系统变量

      $HOME、$PWD、$SHELL、$USER等
      

    2.案例实操
    (1)查看系统变量的值

    $ echo $HOME
    

    (2)显示当前Shell中所有变量:set

    $ set
    
    BASH=/bin/bash
    BASH_ALIASES=()
    BASH_ARGC=()
    BASH_ARGV=()
    
    自定义变量

    1.基本语法
    (1)定义变量:变量=值
    (2)撤销变量:unset 变量
    (3)声明静态变量:readonly变量,注意:不能unset

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

    3.案例实操
    ​(1)定义变量A

    A=5
    echo $A
    5
    

    ​(2)给变量A重新赋值

    A=8
    echo $A
    8
    

    ​(3)撤销变量A

    unset A
    echo $A
    

    ​(4)声明静态的变量B=2,不能unset

    readonly B=2
    echo $B
    2
    
    B=9
    -bash: B: readonly variable
    

    ​(5)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算

    C=1+2
    echo $C
    1+2
    

    (6)变量的值如果有空格,需要使用双引号或单引号括起来

    D=I love b
    -bash: world: command not found
    
    D="I love b"
    echo $D
    I love b
    

    ​(7)可把变量提升为全局环境变量,可供其他Shell程序使用,规则:export 变量名

    vim helloworld.sh
    

    在helloworld.sh文件中增加echo $B

    #!/bin/bash
    
    echo "helloworld"
    echo $B
    
    ./helloworld.sh
    Helloworld
    发现并没有打印输出变量B的值。
    export B
    ./helloworld.sh
    helloworld
    2
    
    特殊变量:$n

    1.基本语法

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

    2.案例实操
    (1)输出该脚本文件名称、输入参数1和输入参数2 的值

    touch parameter.sh
    vim parameter.sh
    
    #!/bin/bash
    echo "$0  $1   $2"
    
    特殊变量:$#

    1.基本语法

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

    2.案例实操
    (1)获取输入参数的个数

    vim parameter.sh
    
    #!/bin/bash
    echo "$0  $1   $2"
    echo $#
    
    ./parameter.sh cls  xz
    parameter.sh cls xz
    2
    
    特殊变量:
    $*、$@
    

    1.基本语法

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

    2.案例实操
    (1)打印输入的所有参数

    vim parameter.sh
    
    #!/bin/bash
    echo "$0  $1   $2"
    echo $#
    echo $*
    echo $@
    
    bash parameter.sh 1 2 3
    parameter.sh  1   2 // 文件名 前两个参数
    3 // 参数的数量
    1 2 3 // 参数的内容
    1 2 3 // 参数的内容
    
    特殊变量:$?

    1.基本语法

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

    2.案例实操
    ​(1)判断helloworld.sh脚本是否正确执行

    ./helloworld.sh
    hello world
    echo $?
    0

    相关文章

      网友评论

          本文标题:Shell中的变量

          本文链接:https://www.haomeiwen.com/subject/qtnnpqtx.html