变量

作者: Simon_Ye | 来源:发表于2020-03-03 21:12 被阅读0次

变量

变量:命名的内存空间

  • 数据存储方式:
     字符:
     数值:整型,浮点型

变量:变量类型

  • 作用:
     1. 数据存储格式
     2. 参与的运算
     3. 表示的数据范围
  • 类型:
     字符
     数值:整型、浮点型

强类型:

变量不经过强制转换,它永远是这个数据类型,不允许隐式的类型转换。一般定义变量时必须指定类型、参与运算必须符合类型要求;调用为声明变量会产生错误
 如:jave,C#

弱类型:

语言的运行时会隐式做数据类型转换。无须指定类型,默认均为字符型;参与运算会自动进行隐式类型转换;变量无须事先定义可直接调用
 如:bash 不支持浮点数,php

变量命名法则:

1. 不能是程序中的保留字;例如if,for
2. 只能使用数字、字母及下划线,且不能以数字开头
3. 见名知意
4. 统一命名规则:驼峰命名法

bash中变量的种类

  • 根据变量的生效范围等标准划分下面变量类型:
    • 本地变量:生效范围为当前 shell 进程;对当前 shell 之外的其它 shell 进程,包括当前 shell 的子进程均无效
    • 环境(全局)变量:生效范围为当前 shell 进程及其子进程
    • 局部变量:生效范围为当前 shell 进程中某代码片段,通常指函数
    • 位置变量:$1,$2,...来表示,用于让脚本在脚本代码中调用通过命令行传递给它的参数
    • 特殊变量:$?,$0,$*,$@,$#,$$

本地变量

  • 变量赋值:name='value'
  • 可以使用引用value:
    1. 可以是直接字串;name="root"
    2. 变量引用:name="$USER"
    3. 命令引用:name="$(COMMAND)"
  • 变量引用:${name},$name
     " ":弱引用,其中的变量引用会被替换为变量值
     ' ':强引用,其中的变量引用不会被替换为变量值,而保持原字符串
  • 显示已定义的所有变量:~]# set
  • 删除变量:~]# unset name

环境变量:

  • bash 内建的环境变量:
    • PATH
    • SHELL
    • USER
    • UID
    • HOME
    • PWD
    • SHLVL
    • LANG
    • MAIL
    • HOSTNAME
    • HISTSIZE
    • _:前一个命令的最后一个参数

只读和位置变量:

  • 只读变量:只能声明,但不能修改和删除
    • 声明只读变量:
      ~]# readonly name
      ~]# declare -r name
    • 查看只读变量:
      ~]# readonly -p

注意:
变量在小括号中执行,会继承当前 shell 的环境变量,但在括号中修改的变量,不会影响当前 shell 环境,一般为一次性使用;变量在大括号中执行,会继承当前 shell 的环境变量,但在括号中修改的变量,也会影响当前 shell 环境。

  • 位置变量:在脚本代码中调用通过命令行传递给脚本的参数
     $1,$2,...:对应第1、第2等参数,shift [n]换位置
     $0:命令本身
     $*:传递给脚本的所有参数,全部参数合为一个字符串
     $@:传递给脚本的所有参数,每个参数为独立字符串
     $#:传递给脚本的参数的个数
     set --:清空所有位置变量

注意:$@和$*只有在被双引号包起来的时候才会有差异

退出状态:

  • 进程使用退出状态来报告成功或失败
     0:代表成功
     1-255:代表失败
    $?变量保存最近的命令退出状态
  • 例如:
    [root@node2 ~]# ping -c1 -W1 hostdown &> /dev/null
    [root@node2 ~]# echo $?
    2
    

相关文章

  • mysql变量

    变量 /*系统变量:全局变量会话变量 自定义变量:用户变量局部变量 */ 一、系统变量 /*说明:变量由系统定义,...

  • mysql存储过程和函数149-169

    变量 /*系统变量:全局变量会话变量自定义变量:用户变量局部变量*/ 一、系统变量 说明:变量有系统提供,不是用户...

  • php 变量和常量

    一、变量 创建变量以 $ 开头,以 ; 结尾 可变变量从变量中解析出变量名 变量赋值 将变量b 将变量b 销毁变量...

  • Golang入门一:变量

    变量声明 变量初始化 变量赋值 变量交换 匿名变量

  • bash脚本编程-变量,变量类型

    bash变量类型: 环境变量,本地变量,位置变量,特殊变量。 本地变量: bash: VARNAME=value ...

  • MySQL(十八)变量

    系统变量:全局变量、会话变量 自定义变量:用户变量、局部变量 一、系统变量 说明:变量由系统定义,不是用户定义,属...

  • 类,变量,迭代器

    1、变量 python中实际有4种变量,分别是全局变量,类变量,实例变量,局部变量。 - 全局变量:类之外的变量,...

  • Linux下的变量

    Linux下的变量 Linux变量 Linux下的变量主要分为三种:本地变量、环境变量和位置变量本地变量本地变量是...

  • 变量及检测数据类型

    变量定义var 变量名 = 变量值; 先定义在赋值var 变量名; 变量名 = 变量值; 定义多个变量var 变量...

  • Java学习笔记-1.4.2变量的分类

    变量的分类 从整体上可将变量划分为局部变量、成员变量(也称为实例变量)和静态变量 局部变量、成员变量、静态变量的区...

网友评论

      本文标题:变量

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