首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Shell普通变量与临时环境变量的区别

Shell普通变量与临时环境变量的区别

原创
作者头像
入门笔记
修改2021-01-04 10:23:31
修改2021-01-04 10:23:31
2.3K0
举报
文章被收录于专栏:入门小站入门小站

Shell普通变量

普通变量也叫局部变量

  • 定义普通变量:
代码语言:txt
复制
> RUMENZ="入门小站"
  • 使用普通变量
代码语言:txt
复制
> echo $RUMENZ
  • 删除普通变量
代码语言:txt
复制
> unset RUMENZ

Shell普通环境变量

  • 什么是环境变量

普通Shell变量只能在当前Shell被访问。而环境变量不仅可以在当前Shell被访问,子Shell也可以被访问。

  • 定义一个环境变量
代码语言:txt
复制
> export RUMENZ="入门小站"

普通变量和环境变量的生命周期

代码语言:txt
复制
[root@local ~]# ps -axjf | grep pts
 PPID PID
 3457 10045 10045 10045 ?           -1 Ss       0   0:00  \_ sshd: root@pts/0
10045 10050 10050 10050 pts/0    13384 Ss       0   0:00      \_ -bash
10050 13384 13384 10050 pts/0    13384 R+       0   0:00      |   \_ ps -axjf
10050 13385 13384 10050 pts/0    13384 S+       0   0:00      |   \_ grep --color=auto pts

ps -axjf第一列是PPID(父进程PID),第二列是PID(子进程PID),当SSH连接到Shell时,当前终端的PPID(-bash)是ssh守护进程的PID(root@pts/0),因此在当前终端下所有进程的PPID都是-bash 的PID,不如运行命令,执行脚本。

所以在-bash下定义的变量,只有在-bash进程有效,可以被访问,子进程是访问不到的。除非使用export

普通变量只能在当前Shell被访问

代码语言:txt
复制
[root@local ~]# RUMENZ="入门小站"
[root@local ~]# echo $RUMENZ //当前Shell可以访问到
入门小站
[root@local ~]# bash  //进入子Shell
[root@local ~]# echo $RUMENZ //访问不到

环境变量在当前Shell和子Shell都可以被访问

代码语言:txt
复制
[root@local ~]# RUMENZ="入门小站"
[root@local ~]# echo $RUMENZ  //当前Shell可以访问
入门小站
[root@local ~]# export RUMENZ //升级成环境变量
[root@local ~]# bash          //进入子Shell
[root@local ~]# echo $RUMENZ  //子Shell可以被访问
入门小站
wx.jpg
wx.jpg

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Shell普通变量
  • Shell普通环境变量
  • 普通变量和环境变量的生命周期
    • 普通变量只能在当前Shell被访问
    • 环境变量在当前Shell和子Shell都可以被访问
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档