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个位置的参数
例:
$? 获取文件执行或者命令执行的返回状态值(上一条指令是否执行成功)
4.2 字符串精确截取
格式:${变量名:起始位置:截取长度}
示例:
4.3 默认值
场景一
变量a如果有内容,那么就输出a的变量值
变量a如果没有内容,那么就输出默认的内容
格式
${变量名:-默认值}
场景二:
无论变量a是否有内容,都输出默认值
格式:
${变量名+默认值}