今天碰见一个环境变量相关的问题,怎么搞都不对,后来发现自己对环境变量的学习不够充分。
然后在学的时候找了很多,都说的太复杂了,看的我直迷糊。
看了很多理解后,写一篇方便大家抓住重点,如有不正确的地方,欢迎指正。
以下系统为linux环境
首先,什么是环境变量?
简单说,环境变量就是一种变量的类型。比如,int是整形变量,char是字符型变量等等。可以理解为一个系统级的全局变量。
环境变量里面存的是什么?
用什么就存什么!多数时候存的是一个文件或文件夹的位置。比如说这种:
环境变量怎么设置?
环境变量分为临时的和永久的。
常用的临时的,命令行输入:export 变量名称=变量的内容
设置环境变量 ABC 为 /
临时的只对当前会话有效。这个shell终端关闭或者另外复制一个都是找不到这个变量的。
永久的,需要写入系统变量永久生效的需要修改配置文件,有需要的可自行百度。
环境变量如何查看?
set 或者 env 或者export -p
set 显示当前shell的变量,包括当前用户的变量
env 显示当前用户的变量
export 显示当前导出成用户变量的shell变量
具体区别可以查阅别的资料
下面说getenv()
用环境变量基本就会用到getenv();
原型:char *getenv(char *envvar)
函数功能:从环境中取字符串,获取环境变量的值
函数说明:getenv()用来取得参数envvar环境变量的内容。参数envvar为环境变量的名称,如果该变量存在则会返回指向该内容的指针。环境变量的格式为envvar=value。getenv函数的返回值存储在一个全局二维数组里,当你再次使用getenv函数时不用担心会覆盖上次的调用结果。
返回值: 执行成功则返回指向该内容的指针,找不到符合的环境变量名称则返回NULL。如果变量存在但无关联值,它将运行成功并返回一个空字符串,即该字符的第一个字节是null