环境变量的理解

1、前言

我们在写shell脚本的时候,打印变量的语法是 echo $变量名

同样,环境变量,也是一个变量,会有值(类似c语言中的变量初始化。。。。)

环境变量:指在操作系统中用来指定操作系统运行环境的一些参数

特征:

1)本质是字符串-------->字符串变量

2)有统一的格式:名=值[:值]   ------>多个值的时候后面的值用:隔开(参见PATH的值)。

3)值用来描述环境信息

环境变量的存储形式与命令行类似,char*[]数组,数组名environ,内部存储字符串,NULL结尾,即最后一个字符串为NULL

加载位置位于用户区,高于stack的起始位置,位于接近3G的地址空间的位置;

引入环境变量表:需声明环境变量:extern  char **environ;

 

2、常用的环境变量

可执行程序的路径。不同的路径之间用:隔开;

shell扫描PATH的顺序是从前往后,所以,如果新的路径存有与之前一样的可执行程序时,需要将该路径放在前面,否则就会先搜索到老的版本路径,从而执行老的命令了。

echo  $PATH   命令,查看PATH环境变量

echo $SHELL  查看当前shell的版本(命令解析器)

echo $HOME   当前的家目录

echo $LANG   当前用的语言

举例:我们使用ls 命令后,shell解析器是从PATH路径中搜索的,当搜索到/bin中找到了ls命令执行。

打印某个进程的环境变量(因为环境变量是个接近3G的位置,是属于一个进程的。)

#include <stdio.h>
extern char **environ;
int main()
{
    int i
    for(i = 0;environ[i];i++)
    {
        printf("%s\n",environ[i]);
    }
    return 0;
}

环境变量常用的函数

char *getenv(const char *name);

-------------------------------------get an environment variable

int setenv(const char *name, const char *value, int overwrite);

---------------------------setenv - change or add an environment variable

---------------------------overwrite,为1,则覆盖。

int unsetenv(const char *name); //删除环境变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值