当前位置: 代码迷 >> 综合 >> 环境变量 之【export命令、getenv函数、setenv函数、unsetenv函数使用】
  详细解决方案

环境变量 之【export命令、getenv函数、setenv函数、unsetenv函数使用】

热度:18   发布时间:2023-12-02 01:38:14.0

1、getenv函数

这里写图片描述
注释:
(1)函数说明:获取环境变量的值
(2)参数说明:name为环境变量的名字
(3)返回值:执行成功则返回指向该内容的指针,找不到符合的环境变量名称则返回NULL

2、setenv函数

在Linux操作系统下使用man命令查看setenv:
这里写图片描述
注释:
(1)函数说明:用来改变或增加环境变量的内容
(2)参数解释:
name:环境变量名称字符串
value:环境变量内容
overwrite:用来决定是否要改变已存在的环境变量。如果overwrite不为0,则改变环境变量原有内容,原有内容会被改为参数value所指的变量内容。如果overwrite为0,且该环境变量已有内容,则参数value会被忽略。
(3)成功时返回0,有错误失败返回-1

3、unsetenv函数

这里写图片描述
注释:
(1)函数说明:用来删除一个环境变量
(2)参数解释:name表示环境变量的名称
(3)返回值:成功返回0,失败返回-1并记录错误信息
测试模块代码

  1 #include<stdio.h>2 #include<stdlib.h>3 #include<string.h>4 5 int main()6 {7     char *val;8     const char*name="ABC";9      //获取ABC环境变量的值10     val=getenv(name);11     printf("The first Val %s=%s\n",name,val);12      //覆盖写入环境变量13     setenv(name,"I will get it!",1);14     printf(("The second Val %s=%s\n",name,val));15     16     val=getenv(name);17     printf("The third Val %s=%s\n",name,val);18      //删除环境变量19     int ret=unsetenv(name);20     printf("ret=%d\n",ret);21 22     val=getenv(name);23     printf("The third val %s=%s\n",name,val);24 25     return 0;26 }

运行结果显示
这里写图片描述

4、export命令(用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。)

一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执 行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本。
(1)语法
export(选项)(参数)
(2)选项
-f:代表[变量名称]中为函数名称;
-n:删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中;
-p:列出所有的shell赋予程序的环境变量。
(3)参数
变量:指定要输出或者删除的环境变量
(4)测试模块
直接输入export命令查看已经存在的环境变量
这里写图片描述
a、用export直接设置环境变量
这里写图片描述
查看是否设置完成,可用export命令
红框框部分就是已经设置成功的环境变量
这里写图片描述
b、修改profile文件
这里写图片描述
在profile文件中加入如下内容即可:
这里写图片描述
c、修改.bashrc文件
# vi /root/.bashrc
在里面加入:
export PATH=”$PATH:/opt/au1200_rm/build_tools/bin”

后面两种方法一般需要重新注销系统才能生效,在这里我们可以用echo命令进行测试一下:
这里写图片描述
“/bin”、“/sbin”、“/usr/bin”、“/usr/sbin”、“/usr/local/bin”等路径已经在系统环境变量中了,如果可执行文件在这几个标准位置,在终端命令行输入该软件可执行文件的文件名和参数(如果需要参数),回车即可。

  相关解决方案