河北省住房和城乡建设厅 网站,网格建设专业好不好,建设电影播放网站,海外网站入口个人主页点击直达#xff1a;小白不是程序媛
Linux专栏#xff1a;Linux系统化学习
代码仓库#xff1a;Gitee 目录
mian函数传参获取环境变量
手动添加环境变量
导出环境变量
environ获取环境变量
本地变量和环境变量的区别
Linux的命令分类
常规命令
内建命令
…
个人主页点击直达小白不是程序媛
Linux专栏Linux系统化学习
代码仓库Gitee 目录
mian函数传参获取环境变量
手动添加环境变量
导出环境变量
environ获取环境变量
本地变量和环境变量的区别
Linux的命令分类
常规命令
内建命令
环境变量相关指令 mian函数传参获取环境变量
上篇文章中我们介绍到C/C的mian函数是有两个参数的其实main函数还有第三个参数是用来获取我们的环境变量的。 1 #includestdio.h2 #includestdlib.h3 #includestring.h4 #includesys/types.h5 #includeunistd.h6 int main(int argc ,char * argv[],char * env[])7 {8 int i0;9 for(;env[i];i)10 {11 printf(pid: %d , env[%d]:%s\n,getpid(),i,env[i]); 12 }13 }左边是我们使用指令env得到的结果右边是我们运行上面得到的结果对比两者得到的内容我们会发现是一样的 。其实当我们使用指令启动进程时候都是shell/bash的子进程因此子进程的命令行参数和环境变量都是父进程给我们传递的。
父进程确实可以将环境变量传递给子进程说明父进程是有环境变量的但是父进程shell/bash的环境变量是哪来的呢
要解决这个问题我们还要回顾上篇文章的内容上篇文章我们提到环境变量是可以修改的如果我们不小心修改错了会怎么办呢不妨上手试一试。 模拟误操作后我们会发现一些基础的指令使用不了了不必担心只需要重新启动我们的xshell即可。 通过这个小实验我们可以证明 环境变量信息是以脚本配置文件的形式存在的。我们更改的是bash进程内部的环境变量信息每一次重新登录都会给我们形成新的bash解释器并且新的bash解释器自动读取环境变量配置文件形成自己的环境变量信息 。 这个配置文件是存在在我们家目录的一个隐藏文件。 因此上面的问题都解释通了每一次验证登录时bash都会读取.bash_profile这个配置文件中的内容为bash生成一张环境变量信息表。 手动添加环境变量
Linux下添加环境变量并没有指令按照系统内自定的环境变量格式直接在命令行中输入即可。 我们手动设置的环境变量其实是本地变量并不在系统的环境变量表中。
导出环境变量 export环境变量名环境变量内容 但是我们导出的环境变量只存在于bash进程中的环境变量表中退出后重新登录后依然不存在。 因此我们想要添加自己的环境变量要在上面提到的配置文件中添加。 上面中也给大家演示了一种错误不要带空格。 系统环境变量具有全局属性是会被所有的进程继承下去的。 environ获取环境变量
C语言中有两个全局变量一个是error错误码一个是environ其中environ是一个二级指针指向环境变量表的首个字符串的地址。 1 #includestdio.h2 #includestdlib.h3 #includestring.h4 #includesys/types.h5 #includeunistd.h6 int main()7 {8 extern char**environ;9 int i0;10 for(;environ[i];i)11 {12 printf(%s\n,environ[i]); 13 14 }15 }结合上篇文章我们就介绍了三种获取环境变量的方式 getenvmain函数传参environ 本地变量和环境变量的区别 本地变量只在bash内部有效不会被子进程继承下去。环境变量通过让所有的子进程继承的方式实现全局性 Linux的命令分类
我们误操作环境变量后有些大部分的命令是执行不了的这些命令就是常规命令但是像echo命令依然可以执行这些命令就是内建命令。 常规命令 shell创建一个子进程让子进程执行的。 内建命令 shell命令行的一个函数当然可以直接读取shell内部定义的本地变量。 环境变量相关指令
echo: 显示某个环境变量值export: 设置一个新的环境变量env: 显示所有环境变量set: 显示本地定义的shell变量和环境变量unset 取消环境变量 这篇文章结合上篇文章就把Linux中命令行参数和环境变量就介绍完了在后面的文章中我们还会再次涉及到。希望大家读完后有很大的收获也可以在评论区点评文章中的内容和分享自己的看法。您三连的支持就是我前进的动力感谢大家的支持