Shell 变量使用(环境变量、预定义变量、位置变量、自定义变量的区别)

225 阅读1分钟

一、简介

  • 定义变量格式

    变量名=变量值
    
  • 注释事项

    • = 两边不能有空格,不要使用关键字作为变量名,例如 ls、cd 等。

    • 如果变量名已经存在则覆盖之前的变量值。

    • 变量名称由 字母/数字/下划线 组成,不能以数字开始。

  • 取消变量格式,一般在脚本执行完毕之后,会自动回收取消,所以一般是用不上这个。

    unset 变量名
    
  • 查看变量格式,两种取值方式结果一致

    $变量名
    ${变量名}
    

    但是 ${变量名} 可以处理一些细节情况,例如:

    // 定义 name=dzm
    $ name=dzm
    // 输出 $name
    $ echo $name
    dzm
    // 名称后面拼接 '吃饭了',由于是中文,不会对属性进行影响,可以正常输出
    $ echo $name吃饭了
    dzm吃饭了
    // 但是如果属性后面加的是数字,或者其他可用于定义属性的多余字符,则会输出失败
    $ echo $name3     
    
    $ echo $name3.7
    .7
    // 所有这个时候就需要 ${变量名} 来进行区分处理了
    $ echo ${name}3.7
    dzm3.7
    

二、变量类型

  • 环境变量(变量名通常大写,由操作系统维护)

    • 存储在 /etc/profile~/.bash_profile

    • 命令 $ env 可以列出所有环境变量

    • 常见环境变量: PATH、PWD、USER、UID、HOME、SHELL

      echo $PATH
      
  • 预定义变量(可以调用但是不能赋值或修改)

  • 位置变量(执行脚本时,后面跟的参数)

  • 自定义变量(用户自主设置)