day18-20200623
p69.通配符和其他特殊符号

通配符是匹配文件名得
【?】任意一个字符,必须有一个字符。
【*】匹配0个或者多个字符,有没有都会匹配。
【[]】匹配中括号中任意一个字符,例如[abc]只匹配a、b、c
【[-]】匹配范围
【[^]】逻辑非,匹配不是中括号内的一个字符,例如[^0-9]匹配不是数字的字符
跟着兄弟连系统学习Linux-【day18】_第1张图片

bash其他特殊符号
单双引号都是为了把其中的内容作为一个整体。
【''】单引号中没有特殊含义,$`
【""】双引号有特殊符号,比如$是引用变量。
跟着兄弟连系统学习Linux-【day18】
【``】反引号,系统命令。与$()效果一样。
跟着兄弟连系统学习Linux-【day18】_第2张图片
【#】表示注释
【$】调用变量的值,需要在变量前加上$。
【\】让特殊符号失去作用,变成普通符号输出。

p70.用户自定义变量

变量名称,字母,数字,下划线,不可以以数字开头。
shell中变量类型默认都是字符串。
变量是=等号连接,左右不可以加空格
变量值有空格,需要用双引号或者单引号,把它作为一个整体。
Linux中空格代表分割。
变量可以叠加,变量需要用“$name”或者${name}。
跟着兄弟连系统学习Linux-【day18】_第3张图片
环境变量建议大写,便于区分。

变量分类:用户自定义、环境变量(系统操作环境的最多改一下值,也可以定义新的环境变量)、位置参数变量(主要是脚本中传递值,变量名和作用也是固定的)、预定义变量(变量名称补一自己定义,变量作用固定)。

从前到后,限制的越来越多,越来越严格。

【set】查看系统的所有变量
【unset】删除变量

跟着兄弟连系统学习Linux-【day18】
p71.环境变量

环境变量和本地变量的作用范围不一样,本地变量只针对自身的shell使用,环境变量针对自身和所有子shell生效,同时环境变量(如果写入配置文件)针对所有的地方生效。

【export 变量名=变量值】
【pstree】查看进程
yum -y install psmisc

当前地址:login-bash-pstree
定义三个变量,age和sex是环境变量,name是本地变量。
跟着兄弟连系统学习Linux-【day18】_第4张图片
【set】查看当前系统中的变量,name\age\sex都是有的
跟着兄弟连系统学习Linux-【day18】_第5张图片
当前地址:login-bash-bash-pstree,上面shell的子shell
跟着兄弟连系统学习Linux-【day18】_第6张图片
【set】查看当前系统中的变量,age\sex都是有的

【env】查看变量
【unset】删除变量
跟着兄弟连系统学习Linux-【day18】
环境变量用的最多的是系统用的变量

【PATH】PATH变量,冒号分隔。系统查找命令路径。
叠加的临时生效方式:PATH="$PATH":/tmp/day18
跟着兄弟连系统学习Linux-【day18】

跟着兄弟连系统学习Linux-【day18】_第7张图片
【PS1】定义系统提示符的变量PS1
跟着兄弟连系统学习Linux-【day18】_第8张图片
当前系统提示符:PS1=【[\u@\h \W]\$ 空格】
假设 修改为:PS1【[\u@\t \w]\$ 空格】
跟着兄弟连系统学习Linux-【day18】

命令的方式只能临时生效,永久生效要通过修改文件的方式。

p72.位置参数变量br/>【$n】n代表数字,$0命令本身,$1-9,参数1-9个,10个以上需要用花括号${10}
人为的写参数,传递到脚本中。
![](https://s4.51cto.com/images/blog/202006/23/dd3d1c7c52580ff4a27e7bf6db049467.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
【$*】命令行的所有参数,参数看为一个整体。
【$@】命令行的所有参数,参数看为一个整体。
以上两个差别是,【$*】整体,【$@】区别对待。
跟着兄弟连系统学习Linux-【day18】_第9张图片
【$#】参数个数
跟着兄弟连系统学习Linux-【day18】_第10张图片