变量的分类

变量的分类

  1. 本地变量
    本地变量:当前用户自定义的变量。当前进程中有效,其他进程及当前进程的之进程无效。
  2. 环境变量
    环境变量:当前进程有效,并且能够被子进程调用。
  • env 查看当前进程有效。
  • set 查询当前用户的所有变量(临时变量与环境变量)
  • export 变量名=变量值 或者 变量名=变量值;export 变量名
#export A=hello     临时将一个本地变量(临时变量)变成环境变量
#env|grep ^A  
A=hello  

永久生效:
vim /etc/profile 或者 ~/.bashrc
export A=hello
或者
A=hello

说明:系统中有一个变量PATH,环境变量
export PATH=/usr/local/mysql/bin:$PATH
  1. 全局变量
  • 全局变量:全局所有的用户和程序都能调用,且继承,新建的也默认能调用
    解读相关配置
文件名 说明 备注
$HOME/.bashrc 当前用户的bash信息,用户登录时读取 定义别名、umask、函数
$HOME/.bash_profile 当前用户的环境变量,用户登录时读取
$HOME/.bash_logout 当前用户退出当前shell时最后读取 定义用户退出时执行的程序等
/etc/bashrc 全局的bash信息,所有用户都生效
/etc/profile 全局环境变量信息 系统和所有用户都生效

说明:以上文件修改后,都需要重新source让其生效或退出重新登录
用户登录系统读取相关文件的顺序

  1. /etc/profile
  2. $HOME/.bash_profile
  3. $HOME/.bashrc
  • 系统变量(内置bash中变量):shell本身已经固定好了它的名字和作用
内置变量 含义
$? 上一条命令执行后返回的状态;状态值为0表示执行正常,非0表示执行异常或者错误
$0 当前执行的程序或脚本名
$# 脚本后面接的参数的个数
$* 脚本后面所有参数,参数当作一个整体输出,每一个变量数之间可以空格隔开
$@ 脚本后面所有参数,参数是独立的,也是全部输出
1-9 脚本后面的位置参数,$1表示第1个位置参数,依次类推
{10}-{n} 扩展位置参数,第10个位置变量必须用{}大括号括起来(2位数字以上括起来)
$$ 当前所在进程的进程号,如echo $$
$! 后台运行的最后的一个进程号(当前终端)
!$ 调用最后一条命令历史中的数据
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容