2.shell变量

作者: 芝麻酱的简书 | 来源:发表于2018-07-12 14:30 被阅读22次
    1.注释:

    shell语法使用#来注释内容:

    #!/bin/bash
    #这是一段注释
    
    echo "hello world"
    

    shell中没有多行注释,只有单行注释


    2.变量类型:
    • 类型一:本地变量
      作用域是整个bash进程
      语法:name="Mike"

    • 类型二:局部变量
      作用域是当前代码段
      语法:local name="Sun"

    • 类型三:环境变量
      作用域是当前shell进程以及子进程
      语法:export name=""Dir

    • 类型四:位置变量

    位置变量小样1:

    name="xiaoming"
    ${name}haha
    
    echo "姓名:${name}"
    

    位置变量小样2:

    #给脚本文件传递参数
    #参数${0}是脚本文件名字,所以要从${1}开始取值
    name=${1}
    age=${2}
    echo "姓名:${name},年龄:${age}"
    
    #执行脚本,参数跟参数之间用空格间隔
    ./hello.sh John 19
    
    • 类型五:特殊变量
      ${0}该位置变量为特殊变量,表示文件名字
      $#表示参数个数,注意:写作${#}也可以,👇的同理
      $*表示参数列表:会将所有的参数组成一个字符串
      $@表示参数列表:所有的参数会分开
      $$表示获取当前shell的进程id
      $!表示执行上一个指令的进程id(PID)
      ${?}该位置变量表示返回上一个命令执行状态返回值
      0:表示执行成功;
      1:表示程序执行的结果;
      2:表示程序状态的返回码(0-255);
    echo ${0}
    echo ${?}
    #下面语法错误
    name = "haah"
    echo ${?}
    

    执行脚步后输出:

    0
    ./hello.sh: line 5: name: command not found
    127
    

    3.变量定义:
    • 定义变量不适用💲符号,使用该符号表示取该变量的值
    #定义name变量
    name="xiaoming"
    
    #取name值
    $name
    
    • 定义变量时,变量名和=符号之间不能有空格
    #错误写法⚠️
    name = "xiaoming"
    name ="xiaoming"
    name= "xiaoming"
    
    • 变量名首字母必须为字母(a-z,A-Z)或者下划线
    age=10
    
    echo $age
    
    4.只读变量:

    使用关键字readonly

    name="zhima"
    readonly name
    
    5.删除掉变量:

    使用关键字unset

    name="zhima"
    unset name
    

    相关文章

      网友评论

        本文标题:2.shell变量

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