二. 常见的环境变量操作系统中用来指定操作系统运行环境的一些参数
三. 查看环境变量的方法PATH: 指定命令行的搜索路径
HOME: 指定用户的主工作目录
SHELL: 当前shell
echo $name # name为环境变量的名字`四. 环境变量的相关命令
# 1. export:设置环境变量(本次登录有效) export PATH=$PATH:path # path为新加入的路径` export myval # 将本地变量myval设置为环境变量` # 2. env:显示所有环境变量 # 3. set: 显示本地定义的shell变量和环境变量 # 4. unset:清除本地变量和环境变量 unset myval # 清除myval这个变量`五. 通过代码获取环境变量 5.1 主函数参数argc和argv
argc: int argc --> 命令行执行代码时传进参数的个数
argv: char* argv[] --> 保存命令行执行代码时传进所有参数(字符串)
// 测试argc和argv
int main(int argc, char* argv[])
{
if (2 == argc)
{
if (strcmp("-a", argv[1]) == 0)
{
printf("An");
}
else if (strcmp("-b", argv[1]) == 0)
{
printf("Bn");
}
else
{
printf("please input -a or -bn");
}
}
else
{
printf("The number of command line parameters is incorrect!n");
}
}
5.2 用env获取环境变量
// 1. 用env获取环境变量
int main(int argc, char *argv[], char *env[])
{
// 测试env
int i = 0;
for (; env[i]; i++)
{
printf("%sn", env[i]);
}
return 0;
}
5.3 用environ获取环境变量
// 2. 用environ获取环境变量
int main()
{
extern char** environ;
int i = 0;
for (; environ[i]; i++)
{
printf("%sn", environ[i]);
}
return 0;
}
5.4 用getenv获取环境变量
// 用getenv获取环境变量
int main()
{
// char* getenv(const char* name);
printf("PATH --> %sn", getenv("PATH"));
printf("HOME --> %sn", getenv("HOME"));
printf("SHELL --> %sn", getenv("SHELL"));
return 0;
}
六. 环境变量具有全局性
// 验证环境变量的全局性
// 执行两次此代码(对比两次执行的差别)
// 第一次执行执行什么都不用做
// 第二次执行之前在命令行添加一个myval的变量并且赋值,用export添加到环境变量
int main()
{
printf("myval --> %sn", getenv("myval"));
return 0;
}
上面代码的执行结论是: 代码会读取到新添加进的环境变量的数据,说明环境变量具有全局性。原因是bash是所有进程的父进程,也就是说我们运行代码是bash的一个子进程,子进程会继承父进程的环境变量。



