Shell编程-02-Shell变量 (3)

双引号:输出引号中间的全部内容,如果引号中含有变量、特殊转义字符、命令(需要使用反引号)等会先把变量、转义字符、命令进行解析再输出内容,因此称之为弱引用

反引号:常用于引用命令,即反引号中的内容会被当作命令进行解析输出,相当于$()

以上四种赋值方法,数值内容进行赋值可以不加引号,其他若没有特殊要求的情况,建议进行赋值均采用双引号

定义本地变量输出 方法一 关系 方法二
$a   等效于   ${a}  
`pwd`   等效于   $(pwd)  

以上两种输出变量值建议采取第二种方法,原因如下所示:

如以用户名+rc文件夹,定义变量$usernamerc,如这样写会导致变量为usernamerc,如果写为${username}rc,则可以很明显的看出变量为username

``,反引号容易与单引号引起混淆

定义本地变量示例 [root@localhost Test]# a=718 [root@localhost Test]# b='718' [root@localhost Test]# c="718" [root@localhost Test]# d=`date +%F` [root@localhost Test]# echo $a 718 [root@localhost Test]# echo $b 718 [root@localhost Test]# echo $c 718 [root@localhost Test]# echo ${c} 718 [root@localhost Test]# echo $d 2018-11-02 [root@localhost Test]# echo $(date +%F) 2018-11-02 [root@localhost Test]# a=823-$a [root@localhost Test]# b='823-$a' [root@localhost Test]# c="823-$a" [root@localhost Test]# echo $a 823-718 [root@localhost Test]# echo $b 823-$a [root@localhost Test]# echo $c 823-823-718 [root@localhost Test]# echo ${c} 823-823-718 [root@localhost Test]# path=`pwd` [root@localhost Test]# echo $path /root/Test 环境变量初始化及其对应文件的生效顺序

    在登录Linux系统后,会默认启动一个Shell,此时Shell会在各个配置文件中查找并使用对应的环境变量设置。而Shell所使用的环境变量取决于Shell的运行方式,通常分为以下三种:

通过系统用户登录后默认运行的Shell

非登录交互式运行的Shell

执行脚本运行的非交互式Shell

    当用户是通过登录Linux系统,此时Shell会作为登录Shell启动,此时加载环境变量的顺序如下所示:

详细解释如下所示:
1、用户登录系统后会首先加载/etc/profile全局变量文件。

/etc/profile是Linux默认的Shell主环境变量文件,系统上每个用户登录都会加载该文件。

2、当加载完/etc/profile文件后,会执行加载/etc/profile.d目录中的脚本文件。

/etc/profile.d目录中有很多脚本文件,如果需要自定义登录即运行脚本,可以将自己的脚本放置到该目录中。

3、前面加载完成后,开始加载~/.bash_profile(用户环境文件),而该文件又会分别加载~/.bashrc和/etc/bashrc文件。如果这些文件存在,则执行,如没有,则不执行。

如果用户的Shell不是登录启动时(如SSH远程连接),此时这种非登录Shell只会加载$HOME/.bashrc,不会去查找/etc/bashrc,如果需要加载这些配置,则需要将变量设定等写入$HOME/.bashrc或者/etc/bashrc中。而不是$HOME/.bash_profile或者/etc/profile。

本文同步在微信订阅号上发布,如各位小伙伴们喜欢我的文章,也可以关注我的微信订阅号:woaitest,或扫描下面的二维码添加关注:

MyQRCode.jpg

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyzyff.html