1.变量定义规则
定义变量时需要遵循一些规则
#叠加变量 test,变量值变成了123456
[root@localhost ~ ] # test=123
[root@localhost ~ ] # test="$test"456
[root@localhost ~ ] # echo $test
123456
#再叠加变量 test,变量值变成了123456789
[root@localhost ~ ] # test=${test}789
[root@localhost ~ ] # echo $test
123456789
总结:变量值的叠加可以使用两种格式:“$变量名”或${变量名}
[root@localhost ~ ] # test=$(date)
[root@localhost ~ ] # echo $test
2018年10月21日星期一20:27:50 CST
2. 变量分类
shell中变量的分类并不是按照安装变量的类型来分类的。
注意:环境变量有两种类型,一种是允许用户自定义,另一种是系统定义的。 这种用户自定义的环境变量对整个操作系统环境影响并不大。 唯一的影响是它在父 shell 和子 shell 中都有效(稍后会详细介绍)。 系统定义的环境变量会对我们的运行环境产生一定的影响。 对于系统定义的环境变量,我们无法修改变量的名称和功能,只能修改变量的属性值。 系统定义的环境变量主要是几个重要的环境变量配置文件中的变量,例如/etc/文件中的变量。
提示:环境变量的范围在整个系统中生效,包括父 shell 和子 shell。 这种情况下,为了避免与系统命令冲突,建议环境变量的名称全部大写(主要是自定义环境变量,系统定义的环境变量一般都是大写,不能更改),因为Linux 中的所有系统命令均为小写(仅命令选项为大写)以避免混淆。
预定义变量和位置参数变量只有几种类型,需要记住(稍后会详细介绍)。
1. 用户自定义变量 1. 变量定义
格式:变量名=“变量值”
[root@ ~ ] # 名称=
[根@~]#
[root@localhost ~ ] # 2name="zhen niubi"
-bash:2name=zhen niubi:command not found
[root@localhost ~ ] # name = "zhenniubi"
-bash:name:command not found
[root@localhost ~]#name=zhen niubi
-bash:niubi:command not found
2.变量调用
使用$符号来调用变量。
#定义变量name
[root@localhost ~ ] # name="zhen niubi"
#输出变量name的值
[root@localhost ~ ] # echo $name
zhen niubi
3. 变量的修改
shell中对变量值的修改是以覆盖的形式完成的,以最后一次对变量的赋值为准。
#之前定义好的变量
[root@localhost ~]# name=ailin
[root@localhost ~]#
[root@localhost ~]# echo $name
ailin
#修改后的变量值
[root@localhost ~]# name=cangls
[root@localhost ~]#
[root@localhost ~]# echo $name
cangls
4.查看变量
命令格式:[root@~]#set[选项]
选项:
-u选项说明:
当前系统下从未定义过age字段(变量),直接输出age变量的值。 如下图所示,没有任何值。
如果我为年龄字段定义一个空值,然后查看年龄字段,如下所示,可以看到仍然没有输出。
所以总结一下,查看变量没有输出的情况有两种可能。 一是age变量不存在,二是age变量值为空。 在Java中,变量未定义和变量值为空是两个完全不同的概念。 在shell中也是同样的情况。 我们必须区分这些。
如果我执行set -u命令,我可以区分以上两种情况。
#直接执行`set -u`命令
[root@localhost ~ ] # set -u
#输出一个未定义变量,显示addr变量不存在。
[root@localhost ~]# echo $addr
-bash: addr: unbound variable
#给addr变量定义一个空值,
#在查看变量,可以看到变量的值为空。
[root@localhost ~]# addr=""
[root@localhost ~]# echo $addr
[root@localhost ~]#
注意:在命令行执行set -u 命令。 此方法暂时有效。 如果需要永久保存,需要写入环境变量配置文件中。 (如何配置请看后续环境变量配置内容)
总结:当设置了-u选项后,调用未设置的变量就会报错。 默认情况下任何地方都没有输出。
-x选项说明:
从字面上讲,如果设置了-x选项,则在每个命令执行之前都会输出一次命令。
[root@localhost ~ ] # set -x
[root@localhost ~ ] # ls
+ ls --color=auto
anaconda-ks.cfg install.log install.log.syslog sh tdir test testfile
如果不登录系统的话,就一直这样,因为上面说了,在命令行直接执行会暂时生效。 不建议执行该选项,命令结果看起来会很乱。
设置命令说明:
不添加任何选项直接使用set命令会查询系统中的所有变量,包括用户定义的变量和环境变量。 (其实是其中的一部分)
系统的另一部分变量可以使用env命令来查看。 两个命令看到的变量会重叠,但是env命令看不到自定义变量。 (查了下,网上的介绍也很模糊,就是说两个命令就可以找到系统中的所有变量。set多用于查看系统的用户自定义变量,env多用于查询系统的变量)环境变量。)
总结:
5.变量删除
[root@ ~ ] # 取消设置变量名
变量名前不需要添加$符号。 调用变量值时只需在变量名前添加$符号即可。
我最好把自己积累的、真实的文档和学习资料分享给大家。 如果您需要它们,只需拿起它们即可。 一、学习思路和方法
该课程大纲涵盖了市场上公司目前使用的 99% 的技术。 这个教学大纲写得很详细,你应该学什么,公司会用什么。总共十个主题足够你学了
资料收集: 2.我想学但不知道如何开始。 我应该如何学习?
这里我准备了上面每个知识点对应的学习资料、自学工具、项目实践。
数据采集:
素材收集: 3.软件测试/自动化测试【全家桶】学习工具、安装包、插件....
数据采集:
数据采集:
资料收集: 4、有了安装包和学习资料,没有实际的项目实践怎么办? 我已经准备好了。 请继续阅读。
资料收集: 5、如何获取这些配套资料、学习思路图、以及实际项目源码。
这些信息我都准备在一个php网页中,大家可以扫码获取或者加入Q群进行交流。 密码及备注为111。
最后一句话:
世界的样子取决于你看待它的方式,你自身的价值取决于你的追求和心态。 一切美好的愿望都不是在等待中获得的,而是在奋斗中获得的。
如果我的博客对您有帮助,如果您喜欢我的文章内容,请一键“点赞”“评论”“收藏”!