Shell脚本3
环境变量
1、系统全局环境变量文件: /etc/profile
2、设置环境变量:export var_name=value 注意环境变量建议变量名全部大写
3、修改 /etc/profile文件后, 立刻加载修改的数据配置 source /etc/profile
shell环境分类
交互式:与用户进行交互、互动,效果就是用户输入一个命令 shell环境立刻反馈响应
非交互式:不需要用户参与就可以执行多个命令,如脚本文件含有多个命令,直接执行并给出结果
shell登录环境:需要用户名/密码登录的shell环境
shell非登录环境:不需要用户名/密码进入的shell环境 或执行脚本文件
不同的工作环境加载的环境变量流程不一样
环境变量初始化流程
登录环境 会执行 /etc/profie 加载环境变量
非登录环境 会执行 /当前用户/.bashrc 加载环境变量
在/etc/profile 与 /当前用户/.bashrc 文件分别设置不同的环境变量,
然后创建shell脚本文件输出设置环境变量,
切换不同的环境执行shell脚本文件,观察初始化流程
命令
使用 -l 或 --login 先加载shell登录环境变量 在执行脚本文件
bash -l 脚本文件 bash --login 脚本文件
sh -l 脚本文件 sh --login 脚本文件
bash 加载shell非登录环境变量
bash 脚本文件 sh 脚本文件
分析
1、vim 编辑/etc/profile文件,添加环境变量VAR1=VAR1
2、vim 编辑/当前用户/.bashrc文件,添加环境变量VAR2=VAR2
3、touch 创建demo1.sh脚本文件,并 vim 编辑文件输出 echo $VAR1、echo $VAR2两个变量
4、直接执行 sh demo1.sh脚本文件, 观察什么也没有输出
5、 bash命令 加载Shell非登录环境变量, 观察VAR2输出, VAR1没有输出
6、sh -l demo1.sh 加载Shell登录环境变了, 观察VAR1,VAR2都有输出
识别shell环境 $0识别环境语法
注意:$0在shell脚本文件中 输出脚本文件的名字
echo $0
输出 -bash 是shell登录环境
输出bash 是shell非登录环境
bash 切换为shell非登录环境
logout 退出shell登录环境
exit 退出shell登录环境/非登登录环境
切换shell环境
1、直接登录 加载shell登录环境
2、su 切换用户 登录环境
加载shell登录环境 su 用户名 --login su 用户名 -l
加载shell非登录环境 su 用户名
3、bash命令切换
bash 加载shell非登录环境
bash -l 脚本文件 bash --login 脚本文件 加载登录环境
sh -l 脚本文件 sh --login 脚本文件