您的位置:首页 > 运维架构 > Shell

shell变量(格式,命名,分类,使用变量,只读变量,删除变量)

2020-07-15 17:26 218 查看

本文运行环境ubuntu14.04. 如果其它环境测试不通过,请留言.

变量定义的格式: 变量名=变量值

变量命名规则

  • 变量名只能使用英文字母,数字和下划线. 变量首字符不能以数字开头.
  • 变量名,等号和值之间不能有空格.
  • 严格区分大小写.
  • 不能使用shell关键字.
    正例:

    反例:

    注: 若变量的值中有空格,需要加双引号.
    比如: country=“I come from China” 必须加双引号,否则解释器只把I作为country变量的值.
    country=China 可省去双引号.

变量分类
变量可分为三类: 自定义变量, 位置变量 ,环境变量

  • 自定义变量:用户在脚本或者命令行中定义的变量. 比如: where=“userdata”

  • 位置变量:执行linux命令或shell脚本时带有的参数.
    格式: 命令 参数1 参数2 参数3 …
    比如: 执行脚本命令: ./build_8909.sh all msm8909go_xf -v user 其中 all msm8909go_xf -v user 是位置变量的值

    获取位置变量
    以此命令为例: ./build_8909.sh all msm8909go_xf -v user
    1. $0 :获取脚本文件名: build_8909.sh
    2. ${1} : 获取命令行第一个参数:all . 小于10的参数,可省去{}
    3. $# :获取命令行参数个数:4
    4. $@ :返回命令行所有参数: all msm8909go_xf -v user
    5. $* :返回命令行所有参数:all msm8909go_xf -v user

    注:$* 与 $@ 区别:
    相同点:都是返回命令行所有参数。
    不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 "$* " 等价于 "1 2 3"(传递了一个参数),而 "$@" 等价于 "1" "2" "3"(传递了三个参数)。
  • 环境变量
    1.对所有用户有效的环境变量(永久有效): 计算机 /etc/profile 文件存放的变量
    2.对特定用户有效的环境变量(永久有效): 计算机 ~/.bashrc 或者 ~/.bash_profile 文件存放的变量.
    3.临时有效的环境变量: 脚本或命令行中, 使用export修饰的变量

    系统中默认的环境变量有:
    HOSTNAME: 主机名
    LOGNAME: 登录名
    PWD:当前所在路径
    HOME:用户主目录
    PATH:系统环境变量
    查看方式:echo $HOSTNAME

使用变量 :在变量名前面加美元符号
比如: your_name=“qinqin”
echo ${your_name}
注:大括号可省 , 但变量要和其它字符一起使用时,大括号不可省.如图

只读变量
使用关键字readonly修饰的变量是只读变量. 不可更改的(相当于java的final),如图:

删除变量
使用关键字unset . 变量被删除后不能再次使用. 如图:

unset 命令不能删除只读变量。如图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐