- export
- export来使变量变为环境变量,因为普通变量不能跨进程,所以通常用export使变量达到进程间可见;还有一个经常见的例子,拓展PATH变量
[root@localhost ~]# myname=myvalue //普通变量
[root@localhost ~]# echo $myname
myvalue
[root@localhost ~]# sh //sh开启了新的shell,也就是开了新进程,
sh-4.4# echo $myname //myname变量在子进程中不可见,所以没有值
[root@localhost ~]# export myname //export为环境变量后
[root@localhost ~]# sh
sh-4.4# echo $myname//子进程中可见了
myvalue
export PATH=$PATH:/usr/local/openresty/nginx/sbin
-
source
source
或者. (英文点号)
在当前shell环境中,读取并执行文件中的命令,如果脚本中有环境变量,通常衍生为环境变量立刻生效。 -
login shell和non-login shell
- login shell就是需要输入用户名、密码才能使用的shell;
- non-login shell就是不需要输入用户名、密码的shell;比如登录后,启动的shell就是非login shell;登录后,使用sh命令开启的shell就是non-login shell。
除了这个差别,他们最大的差别是在读取的环境配置文件不一样,login shell会陆续读取/etc/profile
、~/.bash_profile
,而non-login shell只读取~/.bashrc
,援引鸟哥私房菜图片