系统变量
表示方法 含义
$n $1表示第一个参数,$2表示第二个参数
$0 当前程序的名称
$? 上一个命令或函数的返回码
$* 命令行中输入的全体参数列表的名单
$@ 含义同$*,但是不适用IFS环境变量
$$ 本程序的PID,(进程ID)号
$! 上一个命令的PID
程序执行,可能有俩类返回值
程序执行结果
程序状态返回代码(0-255)
0:正确执行
1-255:错误执行 1,2,127 系统预留
例:
环境变量
shell环境变量是所有shell程序都会接收的参数,shell程序运行时,都会接收一组变量,这组变量就是环境变量
常见的环境有:
PATH shell命令的搜索命令,以冒号为分隔符,包含一系列路径名
HEME 用户home的路径名,也是cd命令的默认参数
HISTFILE 命令历史文件
HISTSIZE 命令历史文件中最多包含的命令条数
SHELL SHELL的路径名,即linux当前正在使用的shell
使用env命令可以查看系统中所有环境变量的值
而在/etc/profile 文件中可以添加、修改系统的环境变量的值,这种修改方式对所有的用户都生效,而且是永久性的
修改文件保存后 ,若想要马上生效还需要运行下面的命令
source /etc/profile
否则只能在下次重新登录该用户时才生效
另外,也可以直接使用export在shell命令行下修改环境变量,但这只是对当前的shell(如bash)或其子shell有效
,并且修改使临时性的,shell关闭后变量就消失了,再打开新的shell时就没有这个变量
printenv:显示当前的环境变量
PATH:使用冒号分割的路径(当我们执行命令的时候,它会按次序从PATH中寻找,找这个命令的可执行程序)
(如果命令第一次执行时,回去寻找,但是以后不会,因为会有缓存,在内存之中把这个命令和对应的路径缓存下来
有个命令叫做hash,使用这个命令可以看出命令的使用次数和命令路径,可以说是缓存)
取消变量的方法为使用“ unset 变量名称”例如取消myname的变量:
unset myname
* 通配符(可以用于匹配任意长度(包括零长度)的任意字符)
? 任意单个字符
[] 匹配指定范围内的任意单个字符 ([abc]从abc选一个 [a-z] 所有小写字母 [0-9]数字
[a-zA-Z] 大写小写都包含)
[^]:匹配指定范围之外的任意单个字符
[:space:]:空白字符
[:punct:]:标点符号
[:lower:]:小写字母
[:upper:]:大写字母
[:alpha:]:大小写字母
[:digit:]:数字
[:alnum:]:数字和大小写字母
``:命令替换
"弱引用",可以实现变量替换
'' :强引用,不完成变量替换