UNIX Shell(2)——Shell变量

Shell变量概述

变量在程序中代表一定的数值,程序在执行时可以使用或改变变量的值.

变量的命名:
– 必须是字母开头
– 可由字母、数字和下划线组成
– 区分大小写

变量的值是一个特殊的字符串

变量分类
环境变量:Shell定义的一些与系统的工作环境有关的全局变量,用户可以重新定义这些变量。
― HOME变量:定义用户主目录
― PATH变量:定义执行命令时的搜索顺序
― PS1变量: 定义主命令提示符

预定义变量(只读):Shell预定义的全局变量,用户只能根据预定义来使用这些变量,不能重新定义它。
– PWD变量:保存用户当前的工作路径
– LOGNAME变量:保存用户登录名

自定义变量:用户根据需要自定义的变量

变量的作用域
局部变量
– 仅在给它赋值的那个shell中起作用
– 一般的shell变量是局部变量

全局变量
– 在当前的shell及它的子shell中都起作用
– 环境变量、预定义变量是全局变量
– 局部变量要成为全局变量,需用export命令
– export命令将shell的局部变量变成全局的用户变量

Shell变量的设置

显示变量设置

set显示当前shell中定义的所有私有变量(局部变量),包括用户的环境变量
在这里插入图片描述
env显示当前用户所有的环境变量(全局变量)这些变量存在于所有子shell中
在这里插入图片描述
set,env和export这三个命令的区别

set 用来显示shell的本地变量
– shell自带变量不同shell是不同的,比如BASH_ARGC,BASH等,这些变量只有set才会显示,是bash特有的。

env 用来显示用户的环境变量
– 用户变量和每个shell有自带特有的变量(set)显示的变量是不同的,当前用户变量和你用什么shell无关,不管用什么shell都在。比如HOME,SHELL等这些变量

export 用来显示和设置环境变量
– export不加参数的时候,显示哪些变量被导出成了用户环境变量,因为一个shell自带变量可以通过export “输出”变成一个用户变量。

设置和引用Shell变量
分配变量:name=value
在这里插入图片描述
引用变量:在变量名前面加$符号
在这里插入图片描述
删除变量:使用unset命令
在这里插入图片描述
Shell变量示例:
在这里插入图片描述

变量替换及扩展
每一个变量都有一个关联值。当使用“$变量名”来对这个变量进行引用时,shell会用变量的值来替换这个参数,这个过程称为变量替换。

shell在执行命令之前完成变量替换

变量替换扩展
– 变量测试
– 字符串计数、截取
– 字符串替换

变量测试:
在这里插入图片描述
字符串计数、截取
在这里插入图片描述
m 的取值从 0 到 ${#var}-1
pattern 中可以使用通配符

字符串替换:
在这里插入图片描述
old 中可以使用 通配符。
var 可以是 @ 或 *,表示对每个位置参数进行替换

其他元字符的特殊含义

命令替换
– $( ) 美元小括号
反引号
元字符的引用
– ‘ ’ 单引号
– “ ” 双引号
– \ 反斜杠

命令替换:
一个命令输出的结果可以给shell的另一个变量赋值,即可以使用该变量代表命令。
当我们显示变量的值时,变量代表的命令就执行,同时将结果赋予该变量。
$()和``反引号都可以表示命令替换
shell先执行命令替换,然后执行整个命令

命令替换示例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
元字符的引用
‘ ’:单引号,Shell对引号间的所有字符不做任何解释
“”:双引号,Shell仅解释引号间的$,`,\的特殊含义
\:反斜杠,转义其后的一个字符,即Shell不对其后的字符做解释

示例:
在这里插入图片描述

命令行的语法分析

在这里插入图片描述

小结

shell支持变量,能够定义用户的环境和让用户自定义变量

变量可以赋值,能够被引用和在脚本中使用

介绍了三种引用的元字符:
– 双引号 (" ")
– 单引号 (’ ')
– 反斜杠 ( \ )

执行命令替换使用反引号(``)或者$( )

( 内容来自湖南大学肖老师的PPT)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值