基本概念:
环境变量一般指在操作系统中用来指定操作系统运行环境的一些参数。
通常具有某些特殊用途,在系统中通常具有全局特性。
常见的环境变量:(可由父进程传递给子进程)
-PATH*:指定目录的搜索路径
-HOME*:指定用户的主工作目录
-HISTSIZE*:指保存历史命令记录的条数
-SHELL*:当前shell
操作环境变量的一些命令
1.echo //显示某个环境变量值
例:echo $PATH //打印出搜索路径
2.export //设置一个新的环境变量
例:export PATH=$PATH:文件的绝对路径
3.env //显示所有环境变量
4.set //显示本地的shell变量和环境变量
5.unset //清楚环境变量
例:unset PATH //就会找不到命令搜索路径

-命令行第三个参数获取环境变量
#include <stdio.h>
int main(int argc,char* argv[],char* env[])
//env是一个指针数组,每个指针指向一个环境字符串
{
int i=0;
for(;env[i];i++){
printf("%s\n",env[i]);
}
return 0;
}
-通过第三方变量获取
注意:libc中定义的全局变量environ指向环境变量表,environ没有包含在任何头文件中,所以要用extern声明
#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;
}
-通过系统调用获取环境变量
1 #include <stdio.h>
2 #include <stdlib.h>
3 int main()
4 {
5 printf("%s\n",getenv("PATH")); //获取PATH环境变量
6 return 0;
7 }
环境变量通常具有全局属性,可以被子进程继承下去
1 #include <stdio.h>
2 #include <stdlib.h>
3 int main()
4 {
5 char* env = getenv("MYENV");
6 if(env)
7 printf("%s\n",env);
8 return 0;
9 }
直接运行没有结果
在命令行运行: export MYENV="hello bit"
发现有结果了,说明:环境变量可以被子进程继承下去

被折叠的 条评论
为什么被折叠?



