美文网首页
第一天:定义变量

第一天:定义变量

作者: 古巷挂青灯 | 来源:发表于2019-07-18 19:44 被阅读0次

1.1 定义变量

值可变的量,称为变量
环境变量的名称:见名知其意(看到的他知道是干啥的)
变量名=变量值,常说的变量,一般是变量名
字母数字下划线,不能是数字开头

1.2 环境变量和普通变量

1.2.1 环境变量(全局变量)

  • Ø 可在创建他们的shell以及派生出来的任意子shell中使用
  • Ø 环境变量包括内置的环境变量和自定义的环境变量,且通常为大写。
  • Ø 环境变量的定义方式:
declare -x 变量名=value
export 变量名=value
  • Ø 环境变量有四个文件,他们的执行顺序如下图所示:
环境变量的执行顺序.jpeg
  • Ø 登陆shell会加载所有的环境变量
  • Ø 非登陆shell可能会加载~/.bashrc或者/etc/bashrc(上图非绿色部分),然而有些定时任务以上两个根本不会加载,所以需要手动指定,建议在定义变量时定义到/etc/bashrc
  • Ø 可以在环境变量文件中定义普通变量

1.2.2 普通变量

  • Ø 普通变量只有在当前shell下才能使用
  • Ø 定义方式
1.适用于一般场景,不适用于带有空格等字符
变量名=value
2.所见即所得的定义方式
变量名=’value’
3.解析双引号之内的变量
变量名=”value”

Ø 注意点:(举例说明)
1. 变量如果后面有内容,一定要把变量括{}起来
2. 希望变量内容原样输出则加单引号
3. 希望获取变量中的命令执行结果用``或者$()

定义变量的方式

1、定义环境变量的方式:
export 变量名=变量值
2、定义普通变量的方式:
变量名=变量值
3、定义变量的三种方式

1-适用于一般场景,不适用于带有空格等字符

[export] 变量名=value

2-所见即所得的定义方式

[export] 变量名=’value’

3-解析双引号之内的变量

[export] 变量名=”value”

4、环境变量文件的加载顺序
/etc/profile ===> ~/.bash_profile ===> ~/.bashrc ===> /etc/bashrc

5、非登录式(ssh)的shell只加载后两个

1.3 临时变量和永久变量(了解)

如果按照变量的生存周期来划分的话,Linux变量可以分为两类:

  • Ø 永久变量:需要修改变量配置文件,使得变量永久生效
  • Ø 临时变量,使用export命令或者直接在当前shell中赋值的变量

1.4 shell特殊变量

1.4.1 参数特殊变量
特殊变量 作用已经说明
$0 获取当前执行shell脚本文件名,如果执行脚本带路径,则包括完整路径
$n 获取当前执行shell脚本的第n个参数值,若n>9,则用大括号包裹,如${10}
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数
$@ 与$*相同,但是使用时加引号,并在引号中返回每个参数。
1.4.2 进程特殊变量
特殊变量 作用已经说明
$? 显示最后命令的退出状态。0表示没有错误,非0表明有错误。此变量最常用
$$ 显示脚本运行的当前进程ID号,此变量不常用,了解即可
$! 后台运行的最后一个进程的ID号,此变量不常用,了解即可
$_ 之前运行脚本的最后一个参数,此变量最不常用,了解即可
1.5 shell变量子串
表达式 作用说明
${param} 返回变量$param内容
${#param} 返回变量$param内容的字符长度,也适合特殊变量,此表达式最常用
${param:offset} 在变量$param中,从位置offset之后开始提取子串到结尾
${param:offset:length} 在变量$param中,从位置offset之后开始提取长度为length的子串
${param#word} 在变量$param开头删除最短匹配的word子串
${param##word} 在变量$param开头删除最长匹配的word子串
${param%word} 在变量$param结尾删除最短匹配的word子串
${param%%word} 在变量$param结尾删除最长匹配的word子串
${param/pattern/string} 将变量$param中符合pattern的第一个内容用string取代
${param//pattern/string} 将变量$param中符合pattern的所有内容用string取代

相关文章

  • MySQL(十八)变量

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

  • 变量及检测数据类型

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

  • 类变量 成员变量

    在变量定义区定义的变量叫做成员变量(全局变量)在方法体重定义的变量叫局部变量

  • Go 基础篇总结-变量

    一、Go内建变量类型 类型转换 type(varName) 二、变量定义 四种变量定义类型: 变量定义 三、变量和...

  • Go 基础篇-变量

    一、Go内建变量类型 类型转换 type(varName) 二、变量定义 四种变量定义类型: 变量定义 三、变量和...

  • 第一天:定义变量

    1.1 定义变量 值可变的量,称为变量环境变量的名称:见名知其意(看到的他知道是干啥的)变量名=变量值,常说的变量...

  • Shell

    变量 定义变量变量和等号之间不能有空格, 变量定以后可从新被定义。 使用readonly可将变量定义为只读变量,只...

  • mysql变量

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

  • 变量的基本使用

    如何定义变量? C语言定义变量的格式: 数据类型 变量名称; Go语言中定义变量的格式: var 变量名称 ...

  • ES6常变量关键字

    ES6之前如何定义变量 可以重复定义变量,会覆盖 会对变量进行预解析 ES6之后如何定义变量 不允许重定义变量 没...

网友评论

      本文标题:第一天:定义变量

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