基本概念
环境变量 一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:我们在编写c/c++代码时,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量在帮助编译器进行查找,环境变量通常具有某些特殊用途,还有在系统中通常具有全局特性
常见环境变量
PATH*:指定命令的搜索路径
HOME*:指定用户的主工作目录
HISTSIZE*:值保存历史记录的条数
SHELL*:当前Shell,它的值通常是/bin/bash
和环境变量相关的命令
1.echo: 显示某个环境变量值
2.export:设置一个新的环境变量
3.env : 显示所有环境变量
4.unset:清除环境变量
5.set:显示本地定义的shell变量和环境变量
通过代码获取环境变量
输入:vim test45.c
#include<stdio.h>
int main(int argc,char *argv[],char *env[])
{
int i = 0;
for(;env[i];i++)
printf("%s\n",env[i]);
return 0;
}
运行:./a.out
通过第三方变量获取:
输入:
#include<stdio.h>
int main(int argc,char *argv[])
{
extern char **environ;
int i = 0;
for(;environ[i];i++)
printf("%s\n",environ[i]);
return 0;
}
运行:
环境变量通常是具有全局属性的
输入:vim test45.c
#include<stdio.h>
int main()
{
char *env = getenv("MYENV");
if(env)
{
printf("%s\n",env);
}
return 0;
}
~
~
运行:
直接查看,发现没有结果,说明该环境变量不存在
导出环境变量 export MYENV=“hello world”
再次运行程序,发现结果有了!说明:环境变量是可以被子进程继承下去的
如果只进行MYENV="hello world",不调用export导出,不会出现结果。