Shell-环境变量
declare 显示定义变量的内容
变量:全局变量 和 局部变量
全局变量:也是环境变量,可以在创建他们的shell及其派生出来的任意子进程shell中使用,环境变量又可分为自定义环境变量和bash内置环境变量
局部变量:也可以称为普通变量,只能在创建它们的shell函数或者shell脚本中使用。不同变量一般有开发者开发脚本程序时创建。
环境变量:
环境变量一般是指用export内置命令导出的变量,用户定义shell的运行环境,保证shell命令的正确执行。shell通过环境变量来确定登录用户名,命令路径,终端类型,登录目录等等。所有的环境变量都是系统全局变量。可用于所有子进程中。包括编辑器,shell脚本和各类应用
可以把变量存在
用户家目录下: .bash_profile或.bashrc(非用户登录模式特有)
查看变量
set, env ,declare
set: 命令输出所有的变量,包括全局变量和局部变量
env:只显示全局变量
declare:输出所有的变量,函数,和已经导出的变量
set -o命令显示bash shell 的所有参数配置信息
设置环境变量
export : 相同于 declare -x
1.用户环境下环境变量配置:
~/.bashrc : 推荐次文件夹优先
~/.bash_profile
2.全局环境变量的配置
/etc/profile
/etc/bashrc :推荐在此文件中优先设置
/etc/profile.d/
环境 变量 初始化 与 对应 文件 的 生效 顺序
当用户登录Linux系统时,shell会作为登录shell启动。此时的登录shell加载环境变量的顺序:
1. 每个用户登录的时候,都会先执行/etc/profile文件
2.执行第一步之后,系统会执行/etc/profile.d 目录下的脚本文件,比如:设置字符集等等
3.执行$HOME/.bash_profile(用户环境变量文件)
4.执行$HOME/.bashrc(用户环境变量文件),如果存在则执行,如果不存在则不执行。
5.执行/etc/bashrc
注意:如果用户的shell不是登录时启动的(比如手动敲下的bash时或者其他不需要输入密码的登录及远程SSH连接的情况),那么这种非登录shell只会加载$HOME/.bashrc(用户环境变量文件),并且回去找/etc/bashrc(全局环境变量),因此如果希望在非登录shell下也可读到设置的环境变量等内容,就需要将变量设定等写入$HOME/.bashrc或者/etc/bashrc.而不是$HOME/.bash_profile 或者 /etc/profile
提示:
1)$变量名 表示输出变量,可以用$变量名 或者 ${变量名} 两种用法
单引号,双引号,反引号,无引号
awk 中引用shell变量