shell 脚本(变量)

1.变量

1.1变量包括两部分:

    变量名 不变的

    变量值 变化的

我们一般所说的变量指的是:变量名

1.2shell 中的变量分为三大类:

    本地变量、全局变量、shell内置变量

2.本地变量

    本地变量就是:在当前系统的某个环境下才能生效的变量,作用范围小。

    本地变量包含两种:普通变量和命令变量

2.1普通变量

    普通变量的定义方式有如下三种,接下来我们就分别说一下这三种方式:

方式一:

    变量名=变量值

    重点:变量值必须是一个整体,中间没有特殊字符

方式二:

    变量名='变量值'

    重点:我看到的内容,我就输出什么内容

方式三:

    变量名="变量值"

    重点:如果变量值范围内,有可以解析的变量A,那么首先解析变量A,将A的结果和其他内容组合成一个整体,重新赋值给变量B

2.2 命令变量

定义方式一:

    变量值=命令

    注意:是反引号

定义方式二(推荐):

    变量名=$(命令)

3.全局变量


3.1 全局变量就是:在当前系统的所有环境下都能生效的变量。

    查看全局变量命令

    env 只显示全局变量

3.2定义全局变量

方法一:

    变量=值

    export 变量

方法二:(最常用)

    export 变量=值

3.3变量的查看和取消

方式一

    $变量名

    场景:私下里,在命令行/脚本中使用图省事

方式二

    "$变量名"

    场景:私下里,在命令行/脚本中使用图省事

方式三

    ${变量名}

    场景:echo "hello world ${变量名} f"使用频率高

方式四

    "${变量名}"

    场景:标准使用方式

3.4 取消变量

    unset 变量名

4 shell 内置变量

4.1

$0 获取当前脚本的名称

$# 获取当前脚本传入参数的数量

$n 获取当前脚本传入的第n个位置的参数

例:

$#,$n

$? 获取文件执行或者命令执行的返回状态值(上一条指令是否执行成功)


4.2 字符串精确截取

格式:${变量名:起始位置:截取长度}

示例:

4.3 默认值

场景一

    变量a如果有内容,那么就输出a的变量值

    变量a如果没有内容,那么就输出默认的内容

格式

    ${变量名:-默认值}

场景二:

    无论变量a是否有内容,都输出默认值

格式:

    ${变量名+默认值}


你可能感兴趣的:(shell 脚本(变量))